从外部验证json post

从外部验证json post,json,codeigniter,logging,Json,Codeigniter,Logging,我有脚本从外部系统接收post json对象。 它应该接收具有以下内容的json对象: {"data":[{"BegRecNbr": 81, "RecFrag": [{"Fields": {"mA": [1406.205078125, 1914.948486328125], "mB": [1769.690673828125, 1816.0640869140625, 1692.6290283203125, 744.02020263671875]}, "RecNbr": 81, "TimeOfRec

我有脚本从外部系统接收post json对象。 它应该接收具有以下内容的json对象:

{"data":[{"BegRecNbr": 81, "RecFrag": [{"Fields": {"mA": [1406.205078125, 1914.948486328125], "mB": [1769.690673828125, 1816.0640869140625, 1692.6290283203125, 744.02020263671875]}, "RecNbr": 81, "TimeOfRec": [731495520, 0]}], "TableNbr": 3}, {"BegRecNbr": 82, "RecFrag": [{"Fields": {"mA": [1406.19384765625, 1915.2742919921875], "mB": [1768.99462890625, 1815.36767578125, 1692.615478515625, 744.01434326171875]}, "RecNbr": 82, "TimeOfRec": [731496480, 0]}], "TableNbr": 3, "NbrOfRecs": 1}]}
我不能触摸外部系统,所以我只能在处理之前登录到文件对象post

我尝试在CI中使用log_消息记录文件,只是为了调试

log_message('debug','values json1: '.$_POST);
$log_my_post = var_export($_POST, TRUE); 
$log_my_post = str_replace(array("\r","\n"," "), '', $log_my_post); 
log_message('debug','values json2: '.$log_my_post);
在日志文件中,我只能看到

DEBUG - 2013-07-22 16:01:28 --> values json1: Array
DEBUG - 2013-07-22 16:01:28 --> values json2: array()
如何查看从外部系统发送到脚本的数组的详细信息 以便我可以验证发送的正确消息

谢谢你的帮助

关于

尝试使用

log_message('debug','values json2: '.json_encode($log_my_post));
这项工作:

$string='{"data":[{"BegRecNbr": 81, "RecFrag": [{"Fields": {"mA": [1406.205078125, 1914.948486328125], "mB": [1769.690673828125, 1816.0640869140625, 1692.6290283203125, 744.02020263671875]}, "RecNbr": 81, "TimeOfRec": [731495520, 0]}], "TableNbr": 3}, {"BegRecNbr": 82, "RecFrag": [{"Fields": {"mA": [1406.19384765625, 1915.2742919921875], "mB": [1768.99462890625, 1815.36767578125, 1692.615478515625, 744.01434326171875]}, "RecNbr": 82, "TimeOfRec": [731496480, 0]}], "TableNbr": 3, "NbrOfRecs": 1}]}';
print_r( json_decode($string,1));

尝试使用json_解码($string,1)。1表示返回一个数组而不是一个对象。

您在客户端还是服务器端接收json的位置?@iBlue在服务器端hi@iBlue,json_encode($\u POST)的结果仍然是唯一的数组。对于第二个.json_encode($log_my_post)),我会在几分钟后告诉您,当我使用json_decode($string,1)时,它在日志文件中返回空白,并发出警告“严重性:警告-->json_decode()预期参数1为string,数组给定…”,然后您的$string出现问题。如果您完全复制/粘贴这两行,它是否不起作用?您使用的PHP版本是什么?错误很奇怪,参数1是$string,在我的示例中是一个字符串。但根据您的错误,这是一个数组…Hi@Luc,就像我前面的句子一样,我应该从外部系统接收json obj,我想通过存储在文件中进行验证。但是我仍然无法在文件中获取详细的json。我使用文件内容解决了这个问题(“php://input"); 谢谢你的回复