Как удалить двойные кавычки в массиве с кодировкой json?

Есть похожие вопросы, которые я не понял (мой вопрос проще ..) внутри php:

echo json_encode(array("value" => $data));

возвращает мне строку JSON, например:

{"value":"100"} (при условии, что 100 – это $данные)

Как я могу получить json, например:

{"value":100} ($данные НЕ в двойных кавычках) ??

Спасибо


person Freddy    schedule 16.11.2016    source источник
comment
Вероятно, вам нужна опция кодирования JSON_NUMERIC_CHECK.   -  person Jonnix    schedule 16.11.2016
comment
Технически все JSON в PHP должны быть заключены в двойные кавычки, даже PHP-переменные. PHP не различает 100 и 100, поэтому я не очень понимаю необходимость.   -  person junkfoodjunkie    schedule 16.11.2016
comment
JSON_NUMERIC_CHECK работает, ЕСЛИ элемент массива является числом, если, как и в моем случае, это переменная, массив (значение => $data), он не работает, по-прежнему возвращает числовое значение $data в двойных кавычках, есть обходной путь?   -  person Freddy    schedule 17.11.2016
comment
ТЫ ПРАВ ! JSON_NUMERIC_CHECK также работает, если элемент является переменной !! Моя ошибка: содержимое переменной $data не было чисто числовым СПАСИБО   -  person Freddy    schedule 17.11.2016


Ответы (1)


Вероятно, вам следует использовать JSON_NUMERIC_CHECK в качестве второго аргумента для json_encode() метода PHP следующим образом:

$arr = ['value' => '100'];
$json_encoded = json_encode($arr, JSON_NUMERIC_CHECK);
// echo $json_encoded --- "{"value":100}"

Надеюсь это поможет!

person Saumya Rastogi    schedule 16.11.2016
comment
это не работает для значений, разделенных запятыми - person samar; 23.11.2017