PHP-获取正确的值类型并编码正确的JSON字符串

PHP-获取正确的值类型并编码正确的JSON字符串,php,json,Php,Json,我有一个php代码作为测试,如下所示: $myObj->string = "myString"; $myObj->number = 111; $objects = json_encode($myObj); echo $objects; 我得到的回音将111显示为一个数字,而不是字符串,这正是我需要的: {“string”:”myString”,”number”:111} 但是,如果我将下面的表单发送到我的save.php文件,则111值会被包装到“”,因此它会变成一个字符串 我的

我有一个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>
我得到的回应是:

{“string”:”myString”,”number”:”111”}
这是不对的,因为我需要一个数字,所以它应该像:“数字”:111

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


谢谢

您可以先检查字符串是否为数字,然后强制对其进行相应处理:

foreach($_GET as $key => $value) 
{
    if( is_numeric($value) )
    {
        $objects->$key = (float) $value;
    }
    else
    {
        $objects->$key = $value;
    }
}

$objs = json_encode($objects);

echo $objs;
假设您的PHP版本是
>5.3.2
,您还可以在
json\u encode()
上使用常量:


您可以先检查字符串是否为数字,然后强制对其进行相应处理:

foreach($_GET as $key => $value) 
{
    if( is_numeric($value) )
    {
        $objects->$key = (float) $value;
    }
    else
    {
        $objects->$key = $value;
    }
}

$objs = json_encode($objects);

echo $objs;
假设您的PHP版本是
>5.3.2
,您还可以在
json\u encode()
上使用常量:

您可以使用:

$objs = json_encode($objects, JSON_NUMERIC_CHECK);
JSON\u数字\u检查 将数字字符串编码为数字。从PHP5.3.3开始提供

您可以使用:

$objs = json_encode($objects, JSON_NUMERIC_CHECK);
JSON\u数字\u检查 将数字字符串编码为数字。从PHP5.3.3开始提供


来自HTML表单的所有内容都是字符串。您需要在获得值后对其进行解析,使其再次成为数字。来自HTML表单的所有内容都是字符串。您需要在获得值后对其进行解析,使其再次成为数字。