Как $.parseJSON() анализирует массив?

#javascript #php #jquery #arrays #json

#javascript #php #jquery #массивы #json

Вопрос:

Я получаю массив из запроса mysql в test.php

$rows =Array ( [0] => Array ( [name] => nikhil ) [1] => Array ( [name] => akhil ))

Я преобразую его в строку формата json и повторяю ее

 $jsonstring = json_encode($rows);
echo $jsonstring;
  

ВЫВОД :

[{«name»:»nikhil»},{«name»: «akhil»}]

Я знаю, что это все еще не в формате json, но это массив (из json)

Но теперь я могу использовать $.parseJSON в jquery.php

  $.post("/test.php",function(r){var jsonobject = $.parseJSON(r); 
    for(var i=0;jsonobject[i];i  ){
  $("#userslist").append("<br>"   jsonobject[i].name);}
  

и он анализирует его должным образом, и я также могу получить доступ к этому объекту json, но, как мы знаем

$.parseJSON() преобразует только правильно сформированную строку json в объект. http://api.jquery.com/jquery.parsejson /

$.parseJSON(): принимает правильно сформированную строку JSON и возвращает результирующее значение JavaScript.

итак, как $.parseJSON() анализировать массив? есть идеи?

Комментарии:

1. Этот «выходной» массив представляет собой JSON.

2. Это допустимый формат JSON, поскольку он включает массивы: json.org

3. это не json, это как массив, правильный json будет {"users" :[{"name":"nikhil"},{"name":"akhil"}]}

4. @beginner нет, это неверно. Массив — это отличное значение JSON.

5. @beginner это предположение о JSON неверно. Даже структура JSON, состоящая только из строкового литерала, является допустимым JSON.

Ответ №1:

Значение JSON может быть:

  • Число;
  • Строка;
  • Значения null , true , или false ;
  • Массив значений JSON;
  • Объект, состоящий из строковых имен свойств и значений JSON для каждого.

Итак

 [{"name":"nikhil"},{"name":"akhil"}]
  

это отличное значение JSON. Это массив, содержащий два значения, каждое из которых является объектом с одним свойством, имеющим строковое значение.

Комментарии:

1. Вы сказали значение JSON, что вы подразумеваете под значением json, я думаю {"users" :[{"name":"nikhil"},{"name":"akhil"}]} , что значение JSON — это массив, и все в порядке

2. @beginner нет, это просто неверно. Массив определенно является допустимым значением JSON, и тот факт, что JSON.parse() он способен его анализировать, должен быть всем необходимым доказательством.

3. Спасибо , я где-то читал, что массив не является json , и json должен быть только в {"name":"value"} формате . и я был очень доволен . Рад узнать, что мое предположение было неверным