json输出数据问题显示无效
这就是我想做的, 从其他服务器以json格式获取api响应,解码为数组并提取所需的数据,并将提取的数据保存到newArray,然后将newArray编码回json并打印到屏幕 但是我面临的问题是打印的json显示无效的json格式 当我查看原始数据时,我注意到开头没有 [,结尾没有] 另外,下一个数据块没有,昏迷。
这是我的代码
$array = json_decode($eng_sub, 1 );
for ($i = 0; $i < count($array); $i++ ){
$resp_array['Movie Name'] = $array[$i]['MovieName'];
$resp_array['Movie Year'] = $array[$i]['MovieYear'];
$resp_array['Language'] = $array[$i]['LanguageName'];
$resp_array['Link'] = $array[$i]['ZipDownloadLink'];
$json = json_encode($resp_array);
print_r ($json);
}
这是我的代码重新编码为json后的响应
{"Movie Name":"Avatar","Movie Year":"2009","Language":"Urdu","Link":"https:\/\/dl.opensubtitles.org\/en\/download\/src-api\/vrf-f52f0bb6\/subad\/7006619"}{"Movie Name":"TEKNO3D.com Avatar 2009 4K VISIONPLUSHDR-1000 4:2:0 Edition S01","Movie Year":"2009","Language":"Urdu","Link":"https:\/\/dl.opensubtitles.org\/en\/download\/src-api\/vrf-f5410bb6\/subad\/7600673"}
我正在XAMPP PHP 7中做到这一点
答案 0 :(得分:1)
您应该准备阵列,然后对其执行单个 json_encode:
$array = json_decode($eng_sub, 1 );
echo json_encode(array_map(function($row) {
return [
'Movie Name' => $row['MovieName'],
'Movie Year' => $row['MovieYear'],
'Language' => $row['LanguageName'],
'Link' => $row['ZipDownloadLink'],
];
}, $array));