Dan*_*son 5 javascript xml asp.net json
我使用多个转换库将 xml 转换为 JSON,得到以下结果。如您所见,属性名称属性丢失了,项目名称属性也丢失了。为什么?
有没有人建议我如何更改我的 XML 以使其更易于转换?
<Asset name="xyz">
<Property name="p1">Value 1</Property>
<Property name="p2">Value 2</Property>
<TimeSeries name="TimeSeries Name 1">
<Item name="30 Apr 2009">97.47219</Item>
<Item name="01 May 2009">97.16496</Item>
<Item name="05 May 2009">97.34606</Item>
</TimeSeries>
</Asset>
Run Code Online (Sandbox Code Playgroud)
返回:
{
"Asset": {
"@attributes": {
"name": "xyz"
},
"Property": ["Value 1", "Value 2"],
"TimeSeries": {
"@attributes": {
"name": "TimeSeries Name 1"
},
"Item": ["97.47219", "97.16496", "97.34606"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法,但 XML 和 JSON 都更加冗长:
<Asset name="xyz">
<Property><name>p1</name><value>Value 1</value></Property>
<Property><name>p2</name><value>Value 2</value></Property>
<TimeSeries name="TimeSeries Name 1">
<Item><date>30 Apr 2009</date><value>97.47219</value></Item>
<Item><date>01 May 2009</date><value>97.16496</value></Item>
<Item><date>05 May 2009</date><value>97.34606</value></Item>
</TimeSeries>
</Asset>
Run Code Online (Sandbox Code Playgroud)
导致...
{
"Asset": {
"@attributes": {
"name": "xyz"
},
"Property": [{
"name": "p1",
"value": "Value 1"
}, {
"name": "p2",
"value": "Value 2"
}],
"TimeSeries": {
"@attributes": {
"name": "TimeSeries Name 1"
},
"Item": [{
"date": "30 Apr 2009",
"value": "97.47219"
},
{
"date": "01 May 2009",
"value": "97.16496"
}, {
"date": "05 May 2009",
"value": "97.34606"
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您使用此转换工具,您可能永远不应该在源 XML 文件中使用属性。
我发现您的主要问题是您没有自己设计数据并尝试使用奇怪的工具。如果您在服务器端使用 ASP.NET,那么最好设计 C# 类、使用任何测试数据初始化类的实例并使用 DataContractJsonSerializer 等 JSON 序列化或使用简单的 Web 服务。查看如果 ContentType 不是 JSON,我可以从 .asmx Web 服务返回 JSON 吗?或者如何构建 JSON 对象以发送到 AJAX WebService?作为例子。