Извлечение данных JSON с помощью PHP - PullRequest
0 голосов
/ 31 мая 2018

Предположим, ниже приведены мои данные JSON

{"pricing": {
     "com": {
         "addons": {
                "dns": true,
                "email": true,
                "idprotect": true
       },
     "org": {
         "addons": {
                "dns": true,
                "email": true,
                "idprotect": true
       },
     "net": {
         "addons": {
                "dns": true,
                "email": true,
                "idprotect": true
       }
}}

Я хочу отобразить только (com, org, net) сверху JSON.Как мы можем это сделать?

Ответы [ 4 ]

0 голосов
/ 31 мая 2018

Вы ищете это ??

 $json = '{"pricing": {"com": {"addons": {"dns": true,"email": true,"idprotect": true}},"org": {"addons": {"dns": true,"email": true,"idprotect": true}},"net": {"addons": {"dns": true,"email": true,"idprotect": true}}}}';
$output = json_decode($json,true);

echo implode(",",array_keys($output["pricing"]));

com, org, net

0 голосов
/ 31 мая 2018

Сначала у вас был неправильный формат JSON, проверьте это.Я думаю, что это решение может помочь вам !!

$json = '{"pricing": {"com": {"addons": {"dns": true,"email": true,"idprotect": true}},"org": {"addons": {"dns": true,"email": true,"idprotect": true}},"net": {"addons": {"dns": true,"email": true,"idprotect": true}}}}';
$output = json_decode($json);

print_r($output->pricing->com->addons);
print_r($output->pricing->org->addons);
print_r($output->pricing->net->addons);

Вы получите что-то вроде этого !!

stdClass Object ( [dns] => 1 [email] => 1 [idprotect] => 1 ) 
stdClass Object ( [dns] => 1 [email] => 1 [idprotect] => 1 ) 
stdClass Object ( [dns] => 1 [email] => 1 [idprotect] => 1 )
0 голосов
/ 31 мая 2018

Для этого можно использовать json_decode и передать true для второго параметра для преобразования возвращаемых объектов в ассоциативные массивы.

Чтобы отобразить только те клавиши, которые вы можете зациклить $output["pricing"], используя foreach и отобразить ключи:

$json = '{"pricing": {"com": {"addons": {"dns": true,"email": true,"idprotect": true}},"org": {"addons": {"dns": true,"email": true,"idprotect": true}},"net": {"addons": {"dns": true,"email": true,"idprotect": true}}}}';
$output = json_decode($json, true);

foreach ($output["pricing"] as $key => $value) {
    echo $key . "<br>";
}

Другим способом может быть получение array_keys и зациклить их:

foreach (array_keys($output["pricing"]) as $key) {
    echo $key . "<br>";
}
0 голосов
/ 31 мая 2018

Вы можете легко сделать:

$parsed_json= json_decode("your raw data here");
$com = $parsed_json["com"];
$org = $parsed_json["org"];
$net = $parsed_json["net"];

Подробнее о json_decode вы можете узнать на веб-сайте документации PHP.

...