php - 将json与json_decode相结合

时间:2009-11-10 06:37:36

标签: php json

我正在尝试将多个JSON对象组合成一个PHP中的单个对象。我正在迭代JSON对象,解码它们,解析我想要保留的部分,并将它们存储在我的php类的属性中。

假设我的json对象看起来像以下格式:

{
    "lists" : {
        "list" : [
            {
                "termA" : 2 ,
                "termB" : "FOO" 
            } 
        ] 
    } 
}

我想最终将所有内容组合成一个JSON对象。

{
    "lists" : {
        "list" : [
            {
                "termA" : 2 ,
                "termB" : "FOO" 
            },
            {
                "termA" : 2 ,
                "termB" : "FOO" 
            } 
        ] 
    } ,
    "lists" : {
        "list" : [
            {
                "termA" : 4 ,
                "termB" : "BAR" 
            },
            {
                "termA" : 4 ,
                "termB" : "BAR" 
            } 
        ] 
    } 
}

我正在尝试将Arrays存储在我的类中的一个属性中,该函数被称为iteratrivley:

   private function parseData($json){
        $decodeData = json_decode($json);
            $list = $decodeData->lists;
        $this->output .= $list
    }

但是在“$ this-> output。= $ list”行中我收到以下错误。

类stdClass的对象无法转换为字符串

现在$ this->输出没有初始值。什么是临时存储“列表”数组的最佳方法,然后在遍历所有json对象后重新格式化它们?

感谢。

2 个答案:

答案 0 :(得分:7)

你很亲密:

private function parseData($json){
  $decodeData = json_decode($json);
  $list = $decodeData['lists'];
  $this->output .= $list
}

答案 1 :(得分:2)

{
    "lists" : {
      ...
    } ,
    "lists" : {
      ...
    } 
}

这不是有效/有意义的JSON。你有两次使用相同密钥(列表)的哈希。你会如何解决这个问题?