【问题标题】:xml data lost in JSON conversionxml 数据在 JSON 转换中丢失
【发布时间】:2011-02-16 20:21:51
【问题描述】:

我使用多个转换库将 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>

返回:

{
  "Asset": {
    "@attributes": {
      "name": "xyz"
    },
    "Property": ["Value 1", "Value 2"],
    "TimeSeries": {
      "@attributes": {
        "name": "TimeSeries Name 1"
      },
      "Item": ["97.47219", "97.16496", "97.34606"]
    }
  }
}

我尝试了以下方法,但 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>

导致...

{
  "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"
        }
      ]
    }
  }
}

【问题讨论】:

    标签: asp.net javascript xml json


    【解决方案1】:

    如果您使用此转换工具,您可能永远不应该在源 XML 文件中使用属性。

    我看到的主要问题是您没有自己设计数据并尝试使用奇怪的工具。如果您在服务器端使用 ASP.NET,最好设计您的 C# 类,使用任何测试数据初始化类的实例并使用 JSON 序列化(如 DataContractJsonSerializer)或使用简单的 Web 服务。以Can I return JSON from an .asmx Web Service if the ContentType is not JSON?How do I build a JSON object to send to an AJAX WebService? 为例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 2017-12-29
      • 2012-06-09
      相关资源
      最近更新 更多