Страница 1 из 2

Чем разобрать строку

Добавлено: Пт мар 22, 2019 10:13 am
Svetлая
Всем привет.
Подскажите примером, как разобрать строку получаемою https://куку/get/тусипуси.json
Строка выглядит так:
{"wifi":3,"dbm":-59,"voice":null,"time":"11:11:1","weekday":"Fri","mode":1}
На деле строка длиннее и кол-во данных может меняться как по кол-ву так и местами.
Некоторые данные имеют спцс ", а некоторые не имеют. Поправить на модуле формат выхода данных не могу.
Спасибо.

Re: Чем разобрать строку

Добавлено: Пт мар 22, 2019 10:15 am
JackOfShadows

Re: Чем разобрать строку

Добавлено: Пт мар 22, 2019 10:18 am
Svetлая
Спасибо добрый человек!
Что то в голове совсем... тяжко )))

Re: Чем разобрать строку

Добавлено: Пт мар 22, 2019 10:23 am
skysilver

Код: Выделить всё

$json = '{"wifi":3,"dbm":-59,"voice":null,"time":"11:11:1","weekday":"Fri","mode":1}';

$data = json_decode($json);

echo $data->wifi . PHP_EOL;
echo $data->dbm . PHP_EOL;
echo $data->voice . PHP_EOL;
echo $data->time . PHP_EOL;
echo $data->weekday . PHP_EOL;
echo $data->mode . PHP_EOL;

Re: Чем разобрать строку

Добавлено: Пт мар 22, 2019 11:18 am
Svetлая
echo $data->wifi . PHP_EOL;
$data->wifi - это определение что искать в строке?
PHP_EOL; - это "до конца файла" или до разделителя. Если разделитель, то какой? Где-то читала что для json два разделителя (для русского и всех остальных), но могу и ошибаться.

Не понятна первая строка, можете прокомментировать?
$json = '{"wifi":3,"dbm":-59,"voice":null,"time":"11:11:1","weekday":"Fri","mode":1}';

Данные в ней постоянно меняются. Т.е. от запроса к запросу, данные всегда разные.

Re: Чем разобрать строку

Добавлено: Пт мар 22, 2019 11:33 am
Chainik
Svetлая писал(а):
Пт мар 22, 2019 11:18 am
echo $data->wifi . PHP_EOL;
$data->wifi - это определение что искать в строке?
...
Это вывод того, что (какой конкретный параметр) "вытаскивается" из массива.
Svetлая писал(а):
Пт мар 22, 2019 11:18 am
Не понятна первая строка, можете прокомментировать?
$json = '{"wifi":3,"dbm":-59,"voice":null,"time":"11:11:1","weekday":"Fri","mode":1}';

Данные в ней постоянно меняются. Т.е. от запроса к запросу, данные всегда разные.
Первая строка -- это просто фрагмент ваших же данных из примера, сохраненный в переменную $json.

Вставьте этот код в любой онлайн-тестировшик PHP-кода (например, сюда https://www.jdoodle.com/php-online-editor) и вы все поймете.
В вашем случае вместо "статичных" данных будет что-то типа:

Код: Выделить всё

$json = file_get_contents("https://куку/get/тусипуси.json");

Re: Чем разобрать строку

Добавлено: Пт мар 22, 2019 11:49 am
Svetлая

Код: Выделить всё

$url='https://куку/get/тусипуси.json';
$json = file_get_contents($url);;

$data = json_decode($json);

// Предположим у нас есть объект Vasy который имеет Свойства "wifi, dbm, voice, time, weekday, mode"
setGlobal ("Vasy.wifi", $data->wifi . PHP_EOL);		// Перечисляем ВСЕ переменные
setGlobal ("Vasy.dbm", $data->dbm . PHP_EOL);		// которые могут встретиться
setGlobal ("Vasy.voice", $data->voice . PHP_EOL);	// при загрузке
setGlobal ("Vasy.time", $data->time . PHP_EOL);		// и раскладываем по своим
setGlobal ("Vasy.weekday", $data->weekday . PHP_EOL);	// местам 
setGlobal ("Vasy.mode", $data->mode . PHP_EOL);		// 
Правильно?

П.С. извините за глупые вопросы, не программист я, мне проще сломать чем создать ))

Re: Чем разобрать строку

Добавлено: Пт мар 22, 2019 11:50 am
Svetлая
В вашем случае вместо "статичных" данных будет что-то типа:

Код: Выделить всё

$json = file_get_contents("https://куку/get/тусипуси.json");
Ага, спасибо, это я помню ещё )))

Re: Чем разобрать строку

Добавлено: Пт мар 22, 2019 11:56 am
Chainik
Svetлая писал(а):
Пт мар 22, 2019 11:49 am
...
$json = file_get_contents($url);;
...
[/code]
Правильно?
Только лишнюю ";" уберите.
Svetлая писал(а):
Пт мар 22, 2019 11:49 am
П.С. извините за глупые вопросы, не программист я, мне проще сломать чем создать ))
Нечего извинятся. Тут практически все не программисты. А программисты, которые сюда заглядывают (за редким исключением), как правило, на такие вопросы не отвечают (ниже это, понимаешь, их достоинства).

Re: Чем разобрать строку

Добавлено: Пт мар 22, 2019 11:58 am
Svetлая
Это точно )))
Спасибо Вам! Сейчас до дому "достучусь, проверю", руки чешутся )))