【发布时间】:2019-03-22 14:13:55
【问题描述】:
我是一个新程序员,我真的被困住了(可能是新手,知识太少)我需要转换一个 json 字符串(类似这样):
[
{
"Start": "date",
"Finish": "date",
"Subject": "",
"Comments": "",
"Site": "address",
"Location": null,
"Status": false,
"Arrived": true,
"Noshow": false,
"Services": "Initial Consultation",
"Attendees": [
{
"AccountId": 1111,
"AccountType": "MP",
"Name": "MMS (FP), Support "
},
{
"AccountId": 2220915,
"AccountType": "PA",
"Name": "Test, Patient "
}
]
},
]
像这样进入 XML:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<element>
<Arrived>true</Arrived>
<Attendees>
<element>
<AccountId>1111</AccountId>
<AccountType>MP</AccountType>
<Name>MMS(FP), Support</Name>
</element>
<element>
<AccountId>2220915</AccountId>
<AccountType>PA</AccountType>
<Name>Test, Patient</Name>
</element>
</Attendees>
<Comments />
<Finish>date</Finish>
<Location null="true" />
<Noshow>false</Noshow>
<Services>Initial Consultation</Services>
<Site>address</Site>
<Start>date</Start>
<Status>false</Status>
<Subject />
</element>
</root>`
并尝试谷歌搜索各种答案均无济于事。我已经尝试了 JsonConvert.DecryptXmlNode(filename); 的很多排列,但这些都通过错误。 我遇到的错误包括“根级别的数据无效”。和“只能转换以有效对象开头的 json”。
为了澄清起见,我收到了数百个 Json 文件(不知道其中有什么),需要一种“包罗万象”的场景。
提前谢谢你。
【问题讨论】:
-
如果 xml 未加密,则无法解密。这就是您收到错误的原因。
-
使用 JSON.Net : newtonsoft.com/json/help/html/Introduction.htm
-
我使用 Newtonsoft 的。效果很好。
-
有许多库可以将 JSON 转换为 XML,但它们很少能准确生成您想要的 XML。通常,必须使用将 XML 映射到所需格式的自定义转换(例如在 XSLT 中)来跟踪转换。这对一个 JSON 文件来说很容易,但是当你不知道其中的内容时,为数百个 JSON 文件做这件事并不容易。您需要更清楚地了解您生成的 XML 将如何使用,以及消费者的期望是什么。
-
JSON 有效。这是一个数组。这就是为什么 xml 使用
<element>元素在根附近和attendees中保存值的原因@