Skip to content
/ json Public

Convert all float values to string when decoding JSON string

License

Notifications You must be signed in to change notification settings

alglyzin/json

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Реализация JSON_FLOAT_AS_STRING для json_decode

Когда вы имеете дело с финансами, очень важно не потерять точность при декодировании json строки с помощью json_decode(). Единственное обходное решение, - это использовать preg_replace для добавления кавычек в исходную строку JSON. Данный метод Json::float_safe($string) позволяет это сделать.

  • Не изменяет структуру самого JSON (пробелы, переносы...)
  • Обрамляет кавычками экспоненциальный формат числа
  • Работает достаточно быстро

Установка из composer:

composer require alglyzin/json

Пример использования:

<?php

    use alglyzin\Json\Json;

    $json = '  {
        "a": 0.00000001e23,
        "b": 0.00000001,
        "c": 10000000000.0e+45,
        "d": 0.00000001e-3,
        "e": 10.0E4,
        "f": 1000000000.0E-34,
        "g": 0.000000000000001,
        "h": 100000
    }';

    $json = Json::float_safe($json);

    echo $json;

    // echo $json:
    //    {
    //        "a": "0.00000001e23",
    //        "b": "0.00000001",
    //        "c": "10000000000.0e+45",
    //        "d": "0.00000001e-3",
    //        "e": "10.0E4",
    //        "f": "1000000000.0E-34",
    //        "g": "0.000000000000001",
    //        "h": 100000
    //    }

About

Convert all float values to string when decoding JSON string

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages