2013-05-17 4 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" } 
      ] 
     } 
    ] 
} 

Когда я использую json_decode в PHP, я получаю пустой результат, что заставляет меня думать, что JSON не отформатирован правильно.Правильный формат json для этого?

Что мне нужно: Объект с именем «категории», и внутри этого объекта будет существовать массив объектов с массивом объектов внутри них.

т.е. Категория -> [ожерелья -> {название: 'Gold', URL: 'Gold'}]

и так далее, но не похоже, это не будет работать. Есть идеи?

+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

Ваш title и url должны быть указаны:

<?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

Все ключи и значения должны быть строки в формате 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.

Смежные вопросы