【发布时间】:2019-03-21 10:49:44
【问题描述】:
我是一个相对较新的程序员,因此知识有限;但是,我被要求创建一个程序来将大量 json 文件转换为 xml 文件。它们有很多,而且它们在内容方面都不同(我不知道它们到底是什么)。
我试过下面的代码
static void ProcessFiles(string path)
{
string[] files;
string[] directories;
XmlDocument xml = new XmlDocument();
files = Directory.GetFiles(path);
foreach (string file in files)
{
using (StreamReader r = new StreamReader(file))
{
string j = r.ReadToEnd();
string json = JsonConvert.DeserializeObject(j).ToString();
xml = JsonConvert.DeserializeXmlNode(json);
Console.Write(xml);
}
}
directories = Directory.GetDirectories(path);
foreach(string directory in directories)
{
ProcessFiles(directory);
}
}
我设法将它作为我的字符串“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 "
}
]
},
]
我一直在网上寻找解决方案,但到目前为止还没有运气。有人可以帮忙吗?
【问题讨论】:
-
LoadXml() 方法要求输入是 XML。现在,您正在使用 json 并创建一个不是 xml 的对象,然后尝试将其解析为 xml。您需要将反序列化 json 并转换为 xml。
-
将文件转换为“任何旧的 XML”是没有意义的;必须有人知道谁将使用 XML,并且该消费者将对预期的 XML 词汇表/模式有特定的要求。因此,这里有一个要求是您缺少的,它对您如何处理转换具有根本性的影响。
-
消费者是我。我需要将文件“按原样”从 json 转换为 xml,这样我就可以做其他事情了。