通过控制器功能构建不正确的json

时间:2017-10-17 16:09:48

标签: php json laravel

我正在从一些网络中构建一个JSON,但当我尝试通过以下方式验证它时:

https://jsonformatter.curiousconcept.com/

我得到了

  • 额外关闭}

  • 多个根元素

这是我得到的结果(是的,我知道它是从同样的5款车型制造的,但这是另一点)

https://pastebin.com/sfXTp18n

这是我的Laravel控制器的代码,它生成了这个JSON(它很糟糕,但这是我能想到的唯一方法):

public function iterateDynamicJson($json){

$result = '['; //open json 

foreach ($json->makes as $trademark){

    //foreach trademark

        if($trademark->Group!=""){ //deletes trademark duplicates
            $result.='{"id":'.$trademark->Id.',"name": "'.$trademark->MakeName.'",'.'"modelItems"'.': ['; 
        }

    foreach ($json->models as $id => $name){

        //foreach model

        $this->inc+=1; //number of models? I need to break 

        //break when trademark changes => related to inc

        if($name=="Other "){ //
            break;
        }

        $result.='{"id":'.$id.',"name":"'.$name.'"},'; 
    }

    $result=$this->extractString($result,0,-1); //removes last comma from models iteration 
    $result.= ']},'; //shuts models array and closes trademark
}

$result=$this->extractString($result,0,-1); //removes last comma from trademarks 
$result.= ']'; //closes json 

return $result;

}

有什么想法吗?我真的不知道如何纠正这个JSON,我仍然认为这个流程中的一切都是正确的,但事实并非如此。提前致谢

0 个答案:

没有答案