解析JSON标签
问题描述:
我有一个JSON文件看起来是这样的:解析JSON标签
{
"versionTitle": "Title",
"sectionNames": [
"Section1",
"SubSection",
"SubSubSection"
],
"language": "he",
"title": "Title, subtitle",
"text": [
[
[
"<big><b>some text </b></big>",
"<big><b>other text </b></big>",
<b>more text</>
],
[
"<big><b>text\n</b></big>",
"<small>other text <small>\n",
],
我想解析为可重用的对象,这样我可以定义“大”标签作为标题,而“b”标记为普通文本等,并对其进行适当的设计。
我明白我需要做这样的事情提取JSON字符串:
var json = System.IO.File.ReadAllText("jsonFile.json");
var objects = JArray.Parse(json); // parse as array
foreach (JObject root in objects)
{
foreach (KeyValuePair<string, JToken> app in root)
{
}
}
但是,我怎么解析标签,并在其中使用的文字,而根据标签样式的文本?
答
您需要将它们解析为XML,因为这是您在文本字段中的内容。您可以使用内置的XML解析器来执行此操作。 XmlDocument,它确实有点复杂,但你使用的不仅仅是JSON,因此它会成为一个给定的。
从脚本读取到xml中。
System.Xml.XmlDocument xml = new System.Xml.XmlDocument(); xml.LoadXml(jsonFieldText /*"<big><b>text\n</b></big>"*/);
从那里,你可以使用Xpath或循环弄清楚你的树结构。
你的json是一个'JObject'而不是'JArray'顺便说一句:请看http://json2csharp.com/ –
@ L.B我是json的新手,不理解它。你能解释更多并引导我吗? – amitairos
使用上面的网站链接获取你的模型...现在你所要做的就是'var result = JsonConvert.DeserializeObject(json);'现在你有一个具体的对象可以使用.... –