我的 JavaScript 代码如下:
var oRows= [];
for(var i = 0 ; i < 3 ; i ++) {
var oItem = {name: "example", id: i};
oRows.push(oItem);
}
$.ajax({
url: '/savejson.php',
method: 'post',
data: { 'oRows': oRows }
}).done(function (data) {
console.log(data);
});
以及 php 中的代码:
<?php
$fp = fopen('/data/DecisionTableRows.json', 'w');
fwrite($fp, json_encode($_POST['oRows']));
fclose($fp);
?>
但在 JSON 文件 /data/DecisionTableRows.json
中,我仍然以字符串形式获取属性 Id,我如何将其写为 int?
最佳答案
问题在于 $_POST 变量始终是字符串。
为了避免手动执行 is_numeric
并在 PHP 中对每个值进行强制转换的麻烦,您可以这样做:
var oRows= [];
for(var i = 0 ; i < 3 ; i ++) {
var oItem = {name: "example", id: i};
oRows.push(oItem);
}
$.ajax({
url: '/savejson.php',
method: 'post',
data: { 'oRows': JSON.stringify(oRows) }
}).done(function (data) {
console.log(data);
});
以及 PHP
<?php
$fp = fopen('/data/DecisionTableRows.json', 'w');
fwrite($fp, $_POST['oRows']);
fclose($fp);
?>
通过这种方式,您可以将 JSON 编码的责任转移到 JavaScript,JavaScript 确实可以使用原始数据。
关于javascript - 将 JSON 属性转换为 int php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37418889/