Json输出无效格式

时间:2019-01-20 19:52:46

标签: php json api

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中做到这一点

1 个答案:

答案 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));