php - 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
我错过了什么,或者做错了什么?
谢谢!
解决方案
您可以使用:
$objs = json_encode($objects, JSON_NUMERIC_CHECK);
JSON_NUMERIC_CHECK 将数字字符串编码为数字。自 PHP 5.3.3 起可用。 http://php.net/manual/en/json.constants.php
推荐阅读
- python - 在 Python 中编码 base64 失败
- python - 如何在 python 数据框中的多列之间执行“或”?
- json - 在 Flutter 中以间隔自动获取 API 数据
- angular - 在 if / else 中返回订阅结果
- reactjs - 如何使用带有 ReactJs 的 ChartistJs 库更改条形图标签的颜色和字体
- recursion - 在 mips 程序集中查找数组中元素的总和(使用递归)
- reactjs - redux-persist 在反应通用应用程序的服务器端渲染中不起作用
- java - Gradle 声明以抑制“未经检查”的警告不起作用
- docker - ENV、RUN 产生层、图像或容器?(了解文档问题)
- android - Google API:授权无效,不是有效的电子邮件或用户 ID