我使用NewtonSoft。JSON用于解析XML文档和构建JSON字符串,但是我没有得到想要的输出。我的xml字符串在
下面给出<fulfillment>
<tracking_number/>
<line_items>
<id>466157049</id>
<quantity>1</quantity>
</line_items>
</fulfillment>
在将XML转换为JSON之后,它给出了下面的JSON
{"fulfillment":{"tracking_number":"er2222222","line_items":{"id":"464194075","quantity":"1"}}}
但是我需要JSON如下,因为我的XML cam包含多个line_items数据。上面和下面JSON的区别在于行项元素后面的数组括号。当我在xml中使用两个line_items时,它会给出所需的结果,但在line_items部分中,它不会像JSON格式一样返回数组。
{"fulfillment":{"tracking_number":"er2222222","line_items":[{"id":"464194075","quantity":"1"}]}}
解决这个问题的出路是什么?
谢谢伍Maity
您需要在xml中做一些更改。它应该看起来像这样:
<fulfillment xmlns:json='http://james.newtonking.com/projects/json'>
<tracking_number>er2222222</tracking_number>
<line_items json:Array='true'>
<id>466157049</id>
<quantity>1</quantity>
</line_items>
</fulfillment>
用JSON序列化这个xml示例。NET将生成您需要的json字符串。添加多个line_items
节点将得到预期的结果。多个line_items
示例:
<fulfillment xmlns:json='http://james.newtonking.com/projects/json'>
<tracking_number>er2222222</tracking_number>
<line_items json:Array='true'>
<id>466157049</id>
<quantity>1</quantity>
</line_items>
<line_items>
<id>466157050</id>
<quantity>2</quantity>
</line_items>
</fulfillment>
用上面的xml示例调用以下代码:
var xml = new XmlDocument();
xml.Load("Location of the xml file");
var jsonStr = JsonConvert.SerializeXmlNode(xml);
将产生以下json字符串:
{
"fulfillment": {
"tracking_number": "er2222222",
"line_items": [
{
"id": "466157049",
"quantity": "1"
},
{
"id": "23",
"quantity": "2"
}
]
}