Ответ 1
Если вы используете php 5.3.3 или выше, вы можете использовать JSON_NUMERIC_CHECK
в качестве второго аргумента для json_encode
для этого.
Смотрите: http://us3.php.net/manual/en/function.json-encode.php
Я использую PHP PDO для запроса базы данных MySQL. Он возвращает числа и целые числа в виде строк, и возится с моим JSON.
Есть ли лучший способ его исправления, кроме того, что он задает значения строк за строкой?
array(2) {
["name"]=> string(11) "Preliminary"
["sell_price"]=> string(6) "864.00"
}
Если вы используете php 5.3.3 или выше, вы можете использовать JSON_NUMERIC_CHECK
в качестве второго аргумента для json_encode
для этого.
Смотрите: http://us3.php.net/manual/en/function.json-encode.php
Хотя @Explosion Pills работает в этом случае для нужд @user1032531, он не обращается к первому источнику проблемы.
Как вы можете видеть в исходном вопросе, на стороне PHP значение из sell_price
уже есть string
, хотя, как сказал пользователь, в базе данных он хранится как "число" (мы не знаем, t знать, если это a DECIMAL
или FLOAT
).
Ну, при использовании PDO с MySQL может потребоваться надлежащая конфигурация, чтобы получить "числа" как "числа", как указал пользователь @jameshfisher в своем комментарии. Вы можете следить за его ссылкой, чтобы получить почти все, что вам нужно, чтобы заставить его работать.
Appart из этого, принятый ответ работает, потому что без использования JSON_NUMERIC_CHECK
json_encode
будет отправлять все как текст независимо от типа переменной, а при его использовании он преобразует значение в тип на основе на предположениях, а не на тип исходного var.