Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
JSON到php的访问_Php_Json - Fatal编程技术网

JSON到php的访问

JSON到php的访问,php,json,Php,Json,我使用Javascript创建了一个JSON数组 在将其放入输入字段并使用HTML表单提交之前,我将其字符串化 这是我解码后的输出: var_dump(json_decode($_POST['json']),true);产出: [{"Mid": "1", "cat": "6", "room": "21", "rate": "EURP", "adchexb": "2,2,1"}, {"Mid": "2", "cat": "3", "room": "12", "rate": "EURP", "adc

我使用Javascript创建了一个JSON数组

在将其放入输入字段并使用HTML表单提交之前,我将其字符串化

这是我解码后的输出:

var_dump(json_decode($_POST['json']),true);产出:

[{"Mid": "1", "cat": "6", "room": "21", "rate": "EURP", "adchexb": "2,2,1"}, {"Mid": "2", "cat": "3", "room": "12", "rate": "EURP", "adchexb": "2,1,1"}]
然后每次我尝试访问任何属性时都会出错。我试过:

$jsonObj->Mid //gives "Trying to get property of non-object in..."

$jsonObj[0]->Mis //error again.
基本上,我需要提取
for
循环中的每个对象。请帮助我了解如何访问或获取循环中的所有对象属性


谢谢

您需要将json字符串解码为php对象

$jsonObj=json_decode($jsonObj)
json_decode()
将从这个json输入中为您提供一个包含两个对象的数组:

$json = '[{"Mid": "1", "cat": "6", "room": "21", "rate": "EURP", "adchexb": "2,2,1"}, {"Mid": "2", "cat": "3", "room": "12", "rate": "EURP", "adchexb": "2,1,1"}]';
$result = json_decode($json);
var_dump($result);

使用阵列访问操作符访问它们
[]

echo $result[0]->Mid;


如果您想在
json\u encode
函数中使用另一个参数,可以添加第二个参数。例如:

$myArray = json_decode($jsonObj,true);
现在,
$myArray
将是一个关联数组,您可以这样访问它:

$myArray[0]['Mid'];

第二次尝试是好的,除了打字错误。另请参见JSON/数组遍历。我尝试了您告诉我的方式,但这是在$jsonObj[0]->Mid;=>注意:尝试获取非对象inI的属性时获得了
string(1)“1”
string(1)“2”
。。您确定您执行的示例与我发布的示例一样简单吗?这是var_dump的输出:string(152)[{“Mid”:“1”,“cat”:“6”,“room”:“21”,“rate”:“EURP”,“adchexb”:“2,2,1”},{“Mid”:“2”,“cat”:“3”,“room”:“12”,“rate”:“EURP”,“adchexb”:“2,1,1”}“,
var_dump($result[0]>Mid)的输出是什么?您确定您只执行了我的示例吗?我尝试了一下,这就是我得到的错误:致命错误:无法在
var_dump()
myArray
变量中使用字符串偏移量作为数组,并查看它的外观字符串(152)[{“Mid”:“1”,“cat”:“6”,“room”:“21”,“rate”:“EURP”,“adchexb”:“2,2,1”},{“Mid”:“2”cat:“3”,“room:“12”,“rate:“EURP”,“adchexb:“2,1,1”}]”尝试通过
$myArray['mid']访问
$myArray[0]['Mid'];