Я извлек некоторые данные из документа XML и назначил их на три переменные. Имя корневого элемента, массив, который содержит все имена дочерних элементов корня и второй массив с длиной этих дочерних узлов. Я хочу, чтобы преобразовать эти переменные в объект JSON таким образом:Соберите строки и массивы в JSON правильно
{ "root_name": {
"childName[0]": "lengthSubNodes[0]",
"childName[1]": "lengthSubNodes[1]",
"childName[2]": "lengthSubNodes[2]",
}
с этой функцией:
function XMLtoJSON(rootName,childNames,childNumbers){
var xmlObject = {}
xmlObject[rootName] = {};
for(var i = 0; i < childNames.length; i++){
xmlObject[rootName][childNames[i]] = childNumbers[i];
}
}
Все работает отлично. Однако, когда речь идет о документе XML с детьми многих корневых с тем же именем и длиной они появляются только один раз, как это:
{ "catalog": {
"book": 6
}
и должны выглядеть следующим образом:
{ "catalog": {
"book":6,
"book":6,
"book":6
}
Вы знаете, как исправить Это?
Я не думаю, что у вас могут быть избыточные ключи в одном и том же родительском атрибуте объекта - есть ли способ дать им уникальное значение ключа? – SachiDangalla
Нам нужно знать, как вы хотите, чтобы это «исправлено». Как заявила СачиДангалла, у вас не может быть дубликатов ключей. Что вы хотите сделать с дополнительными данными? Одна из возможностей - создать массив со значениями. Но ** вам нужно выяснить, что вы хотите и рассказать нам. – Makyen
Вы имеете в виду «объект Javascript», а не JSON? JSON - это строка с определенной формой, но она по-прежнему является строкой, а не сложным объектом, как вы описываете ... –