我有这种XML结构,我希望使用JavaScript以JSON格式构建 - 如果可能的话,最好使用点符号。 :)
这是XML - 请注意这是一个伪结构,以保持简单! :)
<Items>
<Item>
<Name>Item 1</Name>
<SubItems>
<Item>
<Name>Sub Item 1</Name>
</Item>
</SubItems>
</Item>
<Item>
<Name>Item 2</Name>
</Item>
</Items>
因此,当我将我的JSON转换为XML(在服务器上)时,输出应该如上所述。
我需要帮助开始这个。我谷歌了,我找不到任何关于如何做到这一点的例子。
提前致谢!
编辑:我正在使用NewtonSoft JSON for .NET将JSON转换为XML!
编辑2:好的,我找到了原始JSON结构来转换为XML - 这就是:
var json = {
"Items":
{
"Item":
[
{
"Name": "Test 1" ,
"SubItems":
{
"Item":
[
{
"Name":"Test 1"
},
{
"Name":"Test 2"
}
]
}
},
{
"Name":"Test 2"
}
]
}
};
这将产生与上面定义完全相同的XML结构。
现在,我将如何使用点符号
构建此结构编辑3:在Nikhil&amp; amp;达林,我想通了,但这只能回答伪问题。但是我会将其标记为已回答并创建一个新问题。 :)
编辑4:我将扩展名发布到标记的答案。 :)
答案 0 :(得分:3)
这应该这样做:
var items = [
{"name":"Item 1","subitems":[
{"name":"Subitem 1"}
]},
{"name":"Item 2"}
];
答案 1 :(得分:2)
var items = [ ];
var item1 = { };
item1.Name = 'Item 1';
item1.SubItems = [ ];
var subItem = { };
subItem.Name = 'Sub Item 1';
item1.SubItems.push(subItem);
items.push(item1);
var item2 = { };
item2.Name = 'Item 2';
items.push(item2);
答案 2 :(得分:1)
var json = {};
json.Items = {};
json.Items.Item = new Array();
var item1 = {};
item1.Name = "Test 1"
item1.SubItems = new Array();
var subItem1 = {};
subItem1.Item = new Array();
subSubItem1 = {};
subSubItem1.Name = "Test 1";
subSubItem2 = {};
subSubItem2.Name = "Test 2";
subItem1.Item.push(subSubItem1);
subItem1.Item.push(subSubItem2);
item1.SubItems.push(subItem1);
var item2 = {};
item2.Name = "Test 2";
json.Items.Item.push(item1);
json.Items.Item.push(item2);
上述代码的输出是
{
"Items": {
"Item": [
{
"Name": "Test 1",
"SubItems": [
{
"Item": [
{
"Name": "Test 1"
},
{
"Name": "Test 2"
}
]
}
]
},
{
"Name": "Test 2"
}
]
}
}
应该这样做:)
答案 3 :(得分:1)
Nikhil回答了这个问题,并获得了魔力。 :) - 我正在用我编写的代码扩展他的答案,以获得我正在寻找的结果。
在收到伪问题的答案后,我真正的问题是我的结构中有不同的项类型,它们共享了Items根节点。
这是我如何解决问题的一个伪示例。同样,Nikhil的答案是解决方案的基础,非常感谢他:)。
假设我们有一个根节点,水果,我们有不同类型的水果。说,苹果和香蕉。
以下是我如何获得JSON结构(最终,我需要的XML转换输出):
// Create the JSON Object
var json = {};
// Create the Fruits Objects (Our root)
json.Fruits = {};
for (var i = 0; i < 3; i++){
// Pseudo condition
if (i == 0 || i == 1) {
// Make sure we have an Apple array
if(json.Fruits.Apple == undefined)
json.Fruits.Apple = [];
json.Fruits.Apple.push({
"Color": "Green"
});
} else {
// Make sure we have a Banana array
if (json.Fruits.Banana == undefined)
json.Fruits.Banana = [];
json.Fruits.Banana.push({
"Color": "Yellow"
});
}
}
这将输出以下JSON:
{"Fruits":
{"Apple":
[
{"Color":"Green"},
{"Color":"Green"}
],
"Banana":
[
{"Color":"Yellow"}
]
}
}
最终,以下XML:
<Fruits>
<Apple>
<Color>Green</Color>
</Apple>
<Apple>
<Color>Green</Color>
</Apple>
<Banana>
<Color>Yellow</Color>
</Banana>
</Fruits>