aleks78888
@aleks78888
http://gamesib.ru

Как вытащить только одну строку из json?

Как вытащить только информацию о сервере 127.0.0.1:1234 из JSON массива
JSON массив:
{"128.3.3.1:1231":{"name":"NAME SERVER 1","gamemode":"mods","url":"https://url.ru","lang":"ru","players":412,"peak":521,"maxplayers":3333},{"127.0.0.1:1234":{"name":"NAME SERVER","gamemode":"mods","url":"https://url.ru","lang":"ru","players":598,"peak":609,"maxplayers":3000},


Мой код который получает и обрабатывает все сервера в JSON
<?php

$json= "https://jsonurl";
$data = json_decode(file_get_contents($json),true);

$ip = "127.0.0.1:1234";

foreach($data as $item) {
print "<tr><td>".$item['name']."</td><br/>";
print "<td>".$item['players']."/".$item['maxplayers']."</td><br/>";
print "<tr><td>".$item['gamemode']."</td><br/>";
print "<tr><td>".$item['url']."</td><br/>";
print "<tr><td>".$item['lang']."</td><br/>";
print "<tr><td>".$item['peak']."</td><br/>";
print "<td><code>connect ".$ip."</code></td></tr><br/>";
}
?>
  • Вопрос задан
  • 130 просмотров
Решения вопроса 2
у Вас JSON невалидный. Если предположить, что правильный JSON такой:
{
  "128.3.3.1:1231":
    {"name":"NAME SERVER 1","gamemode":"mods","url":"https://url.ru","lang":"ru","players":412,"peak":521,"maxplayers":3333},
  "127.0.0.1:1234":
    {"name":"NAME SERVER","gamemode":"mods","url":"https://url.ru","lang":"ru","players":598,"peak":609,"maxplayers":3000}
}

то нужная часть извлекается элементарно:
$json= "https://jsonurl";
$data = json_decode(file_get_contents($json),true);

$ip = "127.0.0.1:1234";
$item = $data[$ip];
Ответ написан
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
$data[$ip]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы