Как генерировать json, использующий php?

Следующее является подлым, недопустимым, зависимым от компилятора, и не может работать в зависимости от различных деталей реализации.

#define private public
#define class struct

, Но это - ответ на Ваш OP, в котором Вы явно приглашаете технику, которую, и я заключаю в кавычки, "полностью глупо и что любой, кто хотел бы попробовать такую вещь в производственном коде, должен быть уволен и/или застрелен".

<час>

Другая техника должна получить доступ к данным члена парламента, не занимающего официального поста путем построения указателей с помощью hard-coded/hand-coded смещения с начала объекта.

30
задан Haluk 27 June 2014 в 23:38
поделиться

3 ответа

Самым простым способом, вероятно, было бы начать с ассоциативного массива пар, которые вы хотите:

$data = array("myfirstvalue" => "myfirsttext", "mysecondvalue" => "mysecondtext");

, затем использовать foreach и некоторую конкатенацию строк:

$jsontext = "[";
foreach($data as $key => $value) {
    $jsontext .= "{oV: '".addslashes($key)."', oT: '".addslashes($value)."'},";
}
$jsontext = substr_replace($jsontext, '', -1); // to get rid of extra comma
$jsontext .= "]";

Или, если у вас есть последняя версия PHP, вы можете использовать встроенные функции кодирования json - просто будьте осторожны при передаче им данных, чтобы они соответствовали ожидаемому формату.

17
ответ дан 27 November 2019 в 23:12
поделиться

Когда у вас есть данные PHP, вы можете использовать функцию json_encode ; он связан с PHP начиная с PHP 5.2

В вашем случае строка JSON представляет:

  • список, содержащий 2 элемента
  • , каждый из которых является объектом, содержащим 2 свойства / значения

В PHP это создаст структура, которую вы представляете:

$data = array(
    (object)array(
        'oV' => 'myfirstvalue',
        'oT' => 'myfirsttext',
    ),
    (object)array(
        'oV' => 'mysecondvalue',
        'oT' => 'mysecondtext',
    ),
);
var_dump($data);

var_dump дает вам:

array
  0 => 
    object(stdClass)[1]
      public 'oV' => string 'myfirstvalue' (length=12)
      public 'oT' => string 'myfirsttext' (length=11)
  1 => 
    object(stdClass)[2]
      public 'oV' => string 'mysecondvalue' (length=13)
      public 'oT' => string 'mysecondtext' (length=12)

И, закодировав ее в JSON:

$json = json_encode($data);
echo $json;

, вы получите:

[{"oV":"myfirstvalue","oT":"myfirsttext"},{"oV":"mysecondvalue","oT":"mysecondtext"}]


Кстати: Фролм, что я помню, я '

64
ответ дан 27 November 2019 в 23:12
поделиться

Это должно быть полезно: Генерация JSON

6
ответ дан 27 November 2019 в 23:12
поделиться
Другие вопросы по тегам:

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