Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.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
Php 如何获取多个数组JSON数据_Php_Json - Fatal编程技术网

Php 如何获取多个数组JSON数据

Php 如何获取多个数组JSON数据,php,json,Php,Json,我有多个数组的Json数据,我试图获取effect_属性中的数据,但它不返回任何内容 这是我的密码 $json = file_get_contents('data.json'); $json_data = json_decode($json,true); for($i = 0; $i < $count_data_action; $i++){ $path_data_action = $json_data[t03_action][data][$i][effect_property]

我有多个数组的Json数据,我试图获取effect_属性中的数据,但它不返回任何内容

这是我的密码

$json = file_get_contents('data.json');
$json_data = json_decode($json,true);

for($i = 0; $i < $count_data_action; $i++){
    $path_data_action =  $json_data[t03_action][data][$i][effect_property];
}

如何获取源路径?

可能是您正在解码的JSON:

$json_data = json_decode($json,true);
在key effect_属性处包含另一个JSON字符串。您可以将其更改为JSON对象,它应该可以正常工作。
否则,您可以再次使用json_解码,如:

for($i = 0; $i < $count_data_action; $i++){
     $path_data_action =  $json_data[t03_action][data][$i]effect_property];
     $pathDataActionArr = json_decode($path_data_action , true);
     $sourcePath = $pathDataActionArr['propTo']['sourcePath'];
}
在这里,不是所有的数组元素都包含源路径。这就是为什么:

if(isset($effectPropertyArr['propTo']['source_path'])) {
上述装置工作正常,输出:

/home/tarun/Desktop/test/temp.php:6: 字符串(205)“{”duration:1,“delay:0”,propTo:“{”source:“image”,“source_path:“./uploads/18032022375907620062/”,“source_file:“1804100413270066.jpg”,“source_name:“Penguins.jpg”},beforeAction:“0”,“action_order:“1”}” /home/tarun/Desktop/test/temp.php:10: 字符串(32)“../uploads/18032022375907620062/”


$path\u data\u action['propTo']['source\u path']
?仍然没有显示任何内容。看起来JSON中有JSON。在问题中包括您的JSON文档。并打开错误报告。你应该会看到很多通知。你有嵌套的JSON吗?你能全部显示出来吗?我已经尝试再次解码,但没有任何变化,我也尝试使用JSON.parse(),我不确定是什么错误。如果不是机密,你可以添加一个带有示例JSON的pastebin链接吗。这会有帮助。一个是,您发布的JSON中存在格式错误。'}'需要在末尾添加。但是我想,实际的JSON不是这样的,否则JSON_decode()会抛出一个错误。我试着对它进行解码。我更新了我的答案。试试看。哇,谢谢你,苏默!它真的很好用!你能再帮我一件事吗?我需要将源路径更改为另一个id,知道吗?
$fileContent = file_get_contents("/home/tarun/Desktop/test/abcd");
$jsonArray = json_decode($fileContent,true);
var_dump($jsonArray['t03_action']['data'][9]['effect_property']);
$effectPropertyArr = json_decode($jsonArray['t03_action']['data'][9]['effect_property'],true);

if(isset($effectPropertyArr['propTo']['source_path'])) {
    var_dump($effectPropertyArr['propTo']['source_path']);  
} else {
    var_dump("No such key!");
}
if(isset($effectPropertyArr['propTo']['source_path'])) {
// decoded array passed key of that array
$json_data['propTo']['source_path'];
try this ,Its working for me.

  var data =  {"duration":1,"delay":0,"propTo":{"source":"image","source_path":"../uploads/17041409353289557288/","source_file":"1704141604180616.jpg","source_name":"image1.jpg"},"beforeAction":"0","action_order":"1"}
            alert(data.duration);
            var Prop = data.propTo;
            alert(Prop.source_path);`enter code here`