Преобразование JsonArray в массив () в PHP [duplicate]

Это означает, что указанная переменная не указана ни на что. Я мог бы сгенерировать это так:

SqlConnection connection = null;
connection.Open();

Это вызовет ошибку, потому что, пока я объявил переменную «connection», она не указала ни на что. Когда я пытаюсь вызвать член «Open», для его устранения нет ссылки, и он будет вызывать ошибку.

Чтобы избежать этой ошибки:

  1. Всегда инициализируйте свои объекты, прежде чем пытаться что-либо с ними делать.
  2. Если вы не уверены, что объект имеет значение null, проверьте его с помощью object == null.

Инструмент Resharper JetBrains определит каждое место в вашем коде, которое имеет возможность ошибки нулевой ссылки, позволяя вам ввести нулевую проверку. Эта ошибка является источником ошибок номер один, IMHO.

11
задан csm232s 6 August 2011 в 03:36
поделиться

6 ответов

Ваш JSON - это сочетание массивов и объектов . Таким образом, нотация массива не будет работать для всех элементов. Например, чтобы найти использование бренда:

foreach ($json->items as $item) {
   var_dump($item->product->brand);
}

Пример кодепада Спецификация JSON

9
ответ дан brian_d 26 August 2018 в 05:35
поделиться

Если бы я был вами, я бы разбирал JSON как массив, а не как объект. Это можно сделать, выполнив следующие действия:

$json = json_decode($data, true);

Включив второй аргумент в json_decode со значением true, вы возвращаете массив. Затем вы можете сделать что-то вроде:

echo '<pre>';
print_r($json);
exit;

Это даст вам представление о структуре массива данных и о том, как получить доступ к необходимой вам информации. Например, чтобы вытащить заголовок, бренд и описание каждого элемента, вы должны сделать следующее:

foreach($json['items'] as $item) {
    echo 'Title: ' . $item['product']['title'] . '<br />';
    echo 'Brand: ' . $item['product']['brand'] . '<br />';
    echo 'Description: ' . $item['product']['description'] . '<br />';
}

Чтобы получить доступность, снова сделайте дамп массива с помощью print_r () и выяснить лучший способ доступа к нему из массива.

21
ответ дан janiv 26 August 2018 в 05:35
поделиться

Это не проблема JSON. Вам просто нужно пересечь массивы. Простой print_r($json); покажет вам структуру.

В вашем случае вам, вероятно, понадобится:

foreach ($json["items"] as $item) {
    foreach ($item["product"] as $key => $value) {
        echo $key . " : " . $value;
    }
}

Первый цикл foreach по списку элементов , И второй доступ подкачки ["product"] приведет вас к желаемым атрибутам.

0
ответ дан mario 26 August 2018 в 05:35
поделиться

Мы можем разбирать JSON Array следующим образом:

<?php
$json = "[{\"name\":\"user1\",\"id\":\"940\"},{\"name\":\"user2\",\"id\":\"949\"}]";
$dec = json_decode($json);

for($idx = 0; $idx < count($dec); $idx++){
    $obj = (Array)$dec[$idx];
    echo $obj["name"];
}
?>

и аналогично JSON Object, подобный этому,

<?php
$json = "{\"name\":\"user1\",\"id\":\"940\"}";
$dec = (Array)json_decode($json);

echo $dec["name"];
?>
8
ответ дан Michael Yaworski 26 August 2018 в 05:35
поделиться

Вы можете использовать этот парсер json для просмотра вашего контента в правильном формате.

Вы можете использовать этот код:

$json = json_decode($url,true);

//you can retrieve kind, tag, id by using

$kind = $json['kind'];
$id = $json['id'];

Здесь элементы сам будет иметь массив, который вы можете использовать

$items[] = $json['items'];

// you can retrieve the data inside the kind array

$kind_arr = $json['items'][0][]['kind'];

//similarly you can parse all the data
3
ответ дан Nathaniel Ford 26 August 2018 в 05:35
поделиться
 $json = '{ "a1":{ "field1":"name1", "field2":age1, "field3":"country1"
 }, 

 "a2":{ "field1":"name2", "field2":age2, "field3":"country2" },

  "a3":{ "field1":"name3", "field2":age3, "field3":"country3" } }';

  $Array = json_decode($json, true);

  foreach ($Array as $key => $value) 

  {

       echo " $key ";
       foreach ($value as $k => $val)   
      {
            echo "$k | $val <br />";
       }    
 }
1
ответ дан Thomas Wilbur 26 August 2018 в 05:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: