PHP-获取正确的值类型并编码正确的JSON字符串
我有一个php代码作为测试,如下所示: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值会被包装到“”,因此它会变成一个字符串 我的
$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表单的所有内容都是字符串。您需要在获得值后对其进行解析,使其再次成为数字。