2013-07-10 2 views
0

у меня есть этот JSON, на котором я пытаюсь извлечь вставной заказы массиву

{ 
    "response" : { 
     "status" : "OK", 
     "count" : 1, 
     "insertion-orders" : [{ 
       "id" : 5, 
       "name" : "First Choice", 
       "code" : null, 
       "state" : "active", 
       "line_items" : [{ 
         "id" :352, 
         "timezone" : "Europe/London" 
        }, { 
         "id" :358, 
         "timezone" : "Europe/London" 
        } 
       ], 
       "labels" : null, 
       "safety_pacing" : true 
      } 
     ] 
    } 
} 

, что им делать это TheJson является строка JSON:

$Json = json_decode($TheJson); 
$JsonResponse = $Json->response; 
$OrdersArray = $JsonResponse->insertion-orders; 

им ошибки получают:

Notice: Undefined property: stdClass::$insertion in /home/foo/a/foo.com/user/htdocs/FunctionManager.php on line 16 

Notice: Use of undefined constant orders - assumed 'orders' in /home/foo/a/foo.com/user/htdocs/FunctionManager.php on line 16 

линии 16 является:

$OrdersArray = $JsonResponse->insertion-orders; 

я просто не понимаю, его действительный JSON

+0

Но его недействительно PHP – DevlshOne

+0

Использовать '$ JsonResponse -> {'insertion-orders'}' – bystwn22

ответ

2
$JsonResponse->insertion-orders; 

обрабатываются как

$JSonResponse->insert MINUS orders 

Вы не можете использовать - в объекте имени атрибута, используя стрелки обозначения. Это должно быть

$JsonResponse->{'insertion-orders'} 

вместо этого.

Что касается вашего комментария про то, что действительный JSON, он не работал бы в JavaScript, либо:

json.insertion-orders 

также будет рассматриваться как json.insertion MINUS orders.

+0

Разрешено ли использовать нотацию массива с объектами в PHP? – Barmar

+0

Я думаю, что можно было бы сделать '$ JsonResponse -> {" insertion-orders "}', но лучшей идеей может быть передача истинного в качестве второго аргумента в json_decode и обращение к нему как к массиву. – Orangepill

+0

Неустранимая ошибка: нельзя использовать объект типа stdClass как массив – Barmar

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