У меня есть некоторые данные в некоторых массивах в Javascript, и я хочу просмотреть эти массивы и поместить значения в Json, я пробую этот код и не могу создать Json. Чтобы проверить, создал ли я его, я пытаюсь напечатать значение в
<span id="res"> nada</span>
Но я не знаю, правильно ли я обращаюсь, я не сильно контролирую Javascript.
var arrayNombres= new Array();
var arrayApellido= new Array();
var arrayCiudad= new Array();
arrayNombres[0]= "nombre1";
arrayNombres[1]= "nombre2";
arrayNombres[2]= "nombre3";
arrayApellido[0]= "ape1 ";
arrayApellido[1]= "ape2";
arrayApellido[2]= "ape3";
arrayCiudad[0]= "ciudad1";
arrayCiudad[1]= "ciudad2";
arrayCiudad[2]= "ciudad3";
var json={datos:[{nombre :''},{apellido:''},{ciudad:''}]};
var obj = JSON.parse(json);
for (var i = 0; i < arrayNombres.length; i++) {
obj['datos'].push({"nombre":arrayNombres[i],"apellido":arrayApellido[i],"ciudad":arrayCiudad[i]});
};
json= JSON.stringify(obj);
$("#res").text(''+ json.datos[1].nombre);
Структура, которую я хочу, чтобы Json имел:
{
datos[
{"nombre":"", "apellidos":"", "edad":""}
{"nombre":"", "apellidos":"", "edad":""}
...
]
Я также подумал о создании массива со всеми значениями, которые я хочу в Json, и анализе этого массива.
Вы должны учитывать, что должна быть создана иерархическая структура, и тогда полученный объект будет значением для печати.
Здравствуйте, проблема в том, что вы неправильно интерпретируете функции
JSON.stringify
иJSON.parse
JSON, объясняющий это, просто представляет собой строку с определенным форматом, когда
JSON.parse(string)
вы конвертируете эту строку в объект или массив Javascript, приJSON.stringify(obj)
этом вы выполняете обратную операцию преобразования объекта javascript в форматированную строку.Проблема в вашем коде заключается в следующем
первая строка
var obj = JSON.parse(json);
не нужна, переменнаяjson
является объектом javascript, а не строкой, поэтому она выдаст ошибку.поэтому цикл будет выглядеть так
for
:Следующая строка
json= JSON.stringify(obj);
преобразует массив в строку JSON, но это приведет к ошибке в следующей строке, поэтому ее следует опустить в сводке, поэтому она должна быть:Логика, которую вы используете для отправки объекта
var obj = JSON.parse(json);
, неверна, вам следует объявить его так, как я указываю ниже. В дополнение к этому есть и другие способы, напримерlist['datos'].push()
, если я сделаю это так, это будет иметь лучший порядок при объявлении атрибутов объекта.