【发布时间】:2016-09-21 23:32:22
【问题描述】:
我在 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?
【问题讨论】:
-
您需要在服务器端执行显式类型案例,因为 http 请求值是无类型的。或者,您可以将最终的 JSON 格式从客户端发送到服务器。
-
你真的需要它作为一个整数,而不是一个字符串,你不能在你需要的地方直接输入它。
-
在将帖子数据发送到服务器之前执行
JSON.stringify,并在没有json encode的情况下写入。$_POST变量永远是字符串。 -
我认为他的意思是,如果您执行
data: { 'oRows': JSON.stringify(oRows) }并将其作为字符串发送,然后不在服务器端进行编码,您将保留整数。 -
天啊
fwrite($fp, $_POST['oRows']);
标签: javascript php json ajax server