json_decode для массива

Это действительно зависит от того, как программно построить ваш сайт, если ваш сайт огромен и отражает схему db, лучше всего написать дружественный генератор url и сохранить его в db.

Спасибо этой системе, вы сможете управлять поиском вашей sitemap easilly

Select CONCAT("http://mysite.com/article/",article.friendly_url) from article 

Но, как я уже сказал, это очень зависит от вашей архитектуры / программирования ....

373
задан Avishake 16 December 2016 в 11:39
поделиться

12 ответов

Согласно документации , вам нужно указать, если вы хотите ассоциативный массив вместо объекта из json_decode, это будет код:

json_decode($jsondata, true);
772
ответ дан Francisco Corrales Morales 16 December 2016 в 11:39
поделиться

попробуйте это

$json_string = 'http://www.domain.com/jsondata.json';
$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata,true);
echo "<pre>";
print_r($obj);
42
ответ дан Pang 16 December 2016 в 11:39
поделиться

Это также изменит его в массив:

<?php
    print_r((array) json_decode($object));
?>
6
ответ дан coreyavis 16 December 2016 в 11:39
поделиться

json_decode поддерживают второй аргумент, когда он установлен на TRUE, он возвратит Array вместо stdClass Object. Проверьте страницу Manual функции json_decode, чтобы увидеть все поддерживаемые аргументы и их детали.

Например попробуйте это:

$json_string = 'http://www.example.com/jsondata.json';
$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata, TRUE); // Set second argument as TRUE
print_r($obj['Result']); // Now this will works!
3
ответ дан Bugs 16 December 2016 в 11:39
поделиться

Это поздний вклад, но есть действительный случай для кастинга json_decode с (array).
Рассмотрим следующее:

$jsondata = '';
$arr = json_decode($jsondata, true);
foreach ($arr as $k=>$v){
    echo $v; // etc.
}

Если $jsondata когда-либо будет возвращено как пустая строка (как, по моему опыту, часто), json_decode вернет NULL, что приведет к ошибке Предупреждение: неверный аргумент указан для foreach () в строке 3 . Вы можете добавить строку кода if / then или троичного оператора, но IMO чище просто изменить строку 2 на ...

$arr = (array) json_decode($jsondata,true);

... если вы не json_decode используете одновременно миллионы больших массивов, и в этом случае, как указывает @ TCB13, производительность может ухудшиться.

25
ответ дан neokio 16 December 2016 в 11:39
поделиться

Пожалуйста, попробуйте это

<?php
$json_string = 'http://www.domain.com/jsondata.json';

$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata, true);
echo "<pre>"; print_r($obj['Result']);
?>
2
ответ дан Dipali Sakle Systematix 16 December 2016 в 11:39
поделиться
json_decode($data, true); // Returns data in array format 

json_decode($data); // Returns collections 

Итак, если вам нужен массив, вы можете передать второй аргумент как 'true' в функцию json_decode.

2
ответ дан Avi 16 December 2016 в 11:39
поделиться

Согласно функции PHP Documentation json_decode есть параметр с именем assoc , который преобразует возвращаемые объекты в ассоциативные массивы

 mixed json_decode ( string $json [, bool $assoc = FALSE ] )

С Параметр assoc по умолчанию имеет значение FALSE. Вам необходимо установить это значение на TRUE, чтобы получить массив.

Изучите приведенный ниже код для примера использования:

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));

, который выводит:

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}
3
ответ дан Arosha De Silva 16 December 2016 в 11:39
поделиться

Если вы работаете с php меньше 5.2, вы можете использовать этот ресурс.

http://techblog.willshouse.com/2009/06/12/using-json_encode-and-json_decode-in-php4/

http: // mike.teczno.com/JSON/JSON.phps

6
ответ дан Anuj Pandey 16 December 2016 в 11:39
поделиться

Попробуй так:

$json_string = 'https://example.com/jsondata.json';
$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata);
print_r($obj->Result);
foreach($obj->Result as $value){
  echo $value->id; //change accordingly
}
1
ответ дан lalithkumar 16 December 2016 в 11:39
поделиться

в PHP json_decode конвертирует данные json в связанный с PHP массив
Например: $php-array= json_decode($json-data, true); print_r($php-array);

1
ответ дан Salman Mohammad 16 December 2016 в 11:39
поделиться

я надеюсь, что это поможет Вам

$json_ps = '{"courseList":[  
            {"course":"1", "course_data1":"Computer Systems(Networks)"},  
            {"course":"2", "course_data2":"Audio and Music Technology"},  
            {"course":"3", "course_data3":"MBA Digital Marketing"}  
        ]}';

Использование, Json декодируют функцию

$json_pss = json_decode($json_ps, true);

Цикличное выполнение по массиву JSON в Результате php

foreach($json_pss['courseList'] as $pss_json)
{

    echo '<br>' .$course_data1 = $pss_json['course_data1']; exit; 

}

: Компьютерные системы (Сети)

1
ответ дан 22 November 2019 в 23:44
поделиться
Другие вопросы по тегам:

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