首页 > 解决方案 > PHP - 获取正确的值类型并编码正确的 JSON 字符串

问题描述

我有一个 php 代码作为这样的测试:

$myObj->string = "myString";
$myObj->number = 111;
$objects = json_encode($myObj);
echo $objects;

我得到的回声将111显示为数字,而不是字符串,这是我需要的:

{“string”:”myString”,”number”:111}

save.php但是,如果我向我的文件发送一个像下面这样的表单, 111值会被包装到“”中,所以它变成了一个字符串。

我的表格:

<form action="save.php">
  <input type="text" name="string">
  <input type="number" name="number">
  <input type="submit">
</form>

我在输入区域中输入的值是:
myString
111

我的save.php文件:

foreach($_GET as $key => $value) {
    $objects->$key = $value;
}// ./ foreach
$objs = json_encode($objects);
echo $objs;

我得到的回声是:

{“string”:”myString”,”number”:”111”}

这是不对的,因为我需要得到一个数字,所以它应该是:“数字”:111

我错过了什么,或者做错了什么?

谢谢!

标签: phpjson

解决方案


您可以使用:

$objs = json_encode($objects, JSON_NUMERIC_CHECK);

JSON_NUMERIC_CHECK 将数字字符串编码为数字。自 PHP 5.3.3 起可用。 http://php.net/manual/en/json.constants.php


推荐阅读