как получить данные из 2 полей JSON в таблице CSS - PullRequest
0 голосов
/ 14 мая 2018

привет, сэр, извините, я хочу спросить еще раз

как получить 2 поля в json?

если 1 поле, например:

$json = json_decode($row['orders'], true);  // 2nd argument `true` converts json object into array.
$email = $json['email'];

, а затемдобавить это:

<td>'.$json["email"].'</td>

как получить 2 поля от json, сэр, я имею в виду, как это

поля 1: Заказы

========
orders
======== 
{email":"tst@gmail.com","name":"myname","phone":"+123123123"}

поля 2: Страна

=========
country
=========
[{id":"001","country:"english","code:"123123"}]

см. Код страны, отличной от полей заказов

, в полях заказа есть код {}

, а в полях с кодом - [{}]

я пытаюсь, как это не работает:

$json_orders = json_decode($row['orders'], true);
$email = $json_orders['email'];
$json_country = json_decode($row['country'], true);
$country = $json_country['country'];

, а затем это в таблице CSS:

<td>'.$json['email'].'</td>

<td>'.$json['country'].'</td>

как получить данные из 2 полей в JSON сэр?

спасибо

1 Ответ

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

Ваши входные данные в формате json искажены из-за отсутствия нескольких двойных кавычек.

В частности, email и id нужны двойные кавычки перед ними, а country и code - двойные кавычки сразу после них.

Изначально я предполагал, что это ошибка отправки кода, но если это проблема в вашем реальном проекте, то что-то не генерирует допустимые строки json. Если вы строите эти строки, я надеюсь, что вы конвертируете массивы с использованием json_encode() и не пытаетесь записать эти квази-JSON-строки вручную с конкатенацией.

Если вы исправите свои строки json, вы можете расшифровать и получить доступ к данным следующим образом:

Код: ( Демо )

$row['orders'] = '{"email":"tst@gmail.com","name":"myname","phone":"+123123123"}';  // assoc array
$row['country'] = '[{"id":"001","country":"english","code":"123123"}]';  // indexed array containing an assoc array

$json_orders = json_decode($row['orders'], true);
echo $json_orders['email'];
echo "\n---\n";
$json_country = json_decode($row['country'], true);
echo $json_country[0]['country'];

Выход:

tst@gmail.com
---
english

* Обратите внимание, что $row['country'] имеет структуру (многомерную), отличную от $row['orders'], поэтому вам нужно будет получить доступ к первому уровню с помощью [0].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...