2013-05-17 52 views
0
{ 
    "categories": [ 
     { 
      "necklaces": [ 
       { title: "Outlet", url: "W_Outlet" }, 
       { title: "Baby-G", url: "W_BabyG" }, 
       { title: "Bulova", url: "W_Bulova" }, 
       { title: "Children_s", url: "W_Childrens" } 
      ] 
     } 
    ] 
} 

当我在PHP中使用json_decode时,我得到一个空的结果,这导致我相信JSON格式不正确。这是正确的json格式吗?

我需要的是:一个名为'categories'的对象,在该对象内部会有一个对象数组,其中有一个对象数组。

即分类 - > [项链 - > {标题: '黄金',网址: '黄金'}]

等等,但它似乎并不奏效。有任何想法吗?

+2

这不是有效的JSON。尝试http://jsonlint.org/。所有密钥必须是字符串。 –

回答

1
{ 
    "categories": [ 
     { 
      "necklaces": [ 
       { 
        "title": "Outlet", 
        "url": "W_Outlet" 
       }, 
       { 
        "title": "Baby-G", 
        "url": "W_BabyG" 
       }, 
       { 
        "title": "Bulova", 
        "url": "W_Bulova" 
       }, 
       { 
        "title": "Children_s", 
        "url": "W_Childrens" 
       } 
      ] 
     } 
    ] 
} 
1

您正在查看字段名称周围的引号。

{ 
    "categories": [ 
     { 
      "necklaces": [ 
       { "title": "Outlet", "url": "W_Outlet" }, 
       { "title": "Baby-G", "url": "W_BabyG" }, 
       { "title": "Bulova", "url": "W_Bulova" }, 
       { "title": "Children_s", "url": "W_Childrens" } 
      ] 
     } 
    ] 
} 
1

titleurl必须加引号:

<?php 

$json = '{ 
    "categories": [ 
     { 
      "necklaces": [ 
       { "title": "Outlet", "url": "W_Outlet" }, 
       { "title": "Baby-G", "url": "W_BabyG" }, 
       { "title": "Bulova", "url": "W_Bulova" }, 
       { "title": "Children_s", "url": "W_Childrens" } 
      ] 
     } 
    ] 
}'; 

$b = json_decode($json); 
print_r($b); 

?> 

而结果将是:

stdClass Object 
(
    [categories] => Array 
     (
      [0] => stdClass Object 
       (
        [necklaces] => Array 
         (
          [0] => stdClass Object 
           (
            [title] => Outlet 
            [url] => W_Outlet 
           ) 

          [1] => stdClass Object 
           (
            [title] => Baby-G 
            [url] => W_BabyG 
           ) 

          [2] => stdClass Object 
           (
            [title] => Bulova 
            [url] => W_Bulova 
           ) 

          [3] => stdClass Object 
           (
            [title] => Children_s 
            [url] => W_Childrens 
           ) 

         ) 

       ) 

     ) 

) 
+0

我想进一步概括它说,所有的键和值必须引用。 – sircapsalot

1

所有键和值必须为String的JSON,你失踪的报价。

{ 
    "categories": [ 
     { 
      "necklaces": [ 
       { 
        "title": "Outlet", 
        "url": "W_Outlet" 
       }, 
       { 
        "title": "Baby-G", 
        "url": "W_BabyG" 
       }, 
       { 
        "title": "Bulova", 
        "url": "W_Bulova" 
       }, 
       { 
        "title": "Children_s", 
        "url": "W_Childrens" 
       } 
      ] 
     } 
    ] 
} 

您可以试试JSONLint来测试JSON。