Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将JSON属性转换为int-php_Javascript_Php_Json_Ajax_Server - Fatal编程技术网

Javascript 将JSON属性转换为int-php

Javascript 将JSON属性转换为int-php,javascript,php,json,ajax,server,Javascript,Php,Json,Ajax,Server,我有以下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) { consol

我有以下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);
 });
var-oRows=[];
对于(变量i=0;i<3;i++){
var oItem={name:“example”,id:i};
或推(oItem);
}
$.ajax({
url:“/savejson.php”,
方法:“post”,
数据:{'oRows':oRows}
}).完成(功能(数据){
控制台日志(数据);
});
和php中的代码:

<?php
        $fp = fopen('/data/DecisionTableRows.json', 'w');
        fwrite($fp, json_encode($_POST['oRows']));
        fclose($fp);
?>


但是在JSON文件
/data/DecisionTableRows.JSON中,我仍然将属性Id作为字符串获取,如何将其作为int写入?

问题在于$\u 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);
 });
var-oRows=[];
对于(变量i=0;i<3;i++){
var oItem={name:“example”,id:i};
或推(oItem);
}
$.ajax({
url:“/savejson.php”,
方法:“post”,
数据:{'oRows':JSON.stringify(oRows)}
}).完成(功能(数据){
控制台日志(数据);
});
在PHP中

<?php
        $fp = fopen('/data/DecisionTableRows.json', 'w');
        fwrite($fp, $_POST['oRows']);
        fclose($fp);
?>


通过这种方式,您可以将编码为JSON的责任转移到JavaScript上,后者确实有原始数据要处理

问题在于$\u 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);
 });
var-oRows=[];
对于(变量i=0;i<3;i++){
var oItem={name:“example”,id:i};
或推(oItem);
}
$.ajax({
url:“/savejson.php”,
方法:“post”,
数据:{'oRows':JSON.stringify(oRows)}
}).完成(功能(数据){
控制台日志(数据);
});
在PHP中

<?php
        $fp = fopen('/data/DecisionTableRows.json', 'w');
        fwrite($fp, $_POST['oRows']);
        fclose($fp);
?>


通过这种方式,您可以将编码为JSON的责任转移到JavaScript上,后者确实有原始数据要处理

您需要在服务器端执行显式类型case,因为http请求值是无类型的。或者,您可以将最终的JSON格式从客户端发送到服务器。您真的需要将其作为一个整数而不是字符串,并且不能在需要的地方键入cast。在将post数据发送到服务器之前,请执行
JSON。stringify
,并在不使用
JSON编码的情况下写入<代码>$\u POST
变量总是字符串。我想他是说,如果你做
数据:{'oRows':JSON.stringify(oRows)}
并将其作为字符串发送,然后不在服务器端编码,你将保留整数您需要在服务器端执行显式类型case,因为http请求值是无类型的。或者,您可以将最终的JSON格式从客户端发送到服务器。您真的需要将其作为一个整数而不是字符串,并且不能在需要的地方键入cast。在将post数据发送到服务器之前,请执行
JSON。stringify
,并在不使用
JSON编码的情况下写入<代码>$\u POST
变量总是字符串。我想他是说,如果你做
数据:{'oRows':JSON.stringify(oRows)}
并将其作为字符串发送,然后不在服务器端编码,你将保留整数