2016-09-20 115 views
0

我有一个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) 
      { 

      } 
     } 

但是,我怎么解析标签,并在其中使用的文字,而根据标签样式的文本?

+1

你的json是一个'JObject'而不是'JArray'顺便说一句:请看http://json2csharp.com/ –

+0

@ L.B我是json的新手,不理解它。你能解释更多并引导我吗? – amitairos

+0

使用上面的网站链接获取你的模型...现在你所要做的就是'var result = JsonConvert.DeserializeObject (json);'现在你有一个具体的对象可以使用.... –

回答

1

您需要将它们解析为XML,因为这是您在文本字段中的内容。您可以使用内置的XML解析器来执行此操作。 XmlDocument,它确实有点复杂,但你使用的不仅仅是JSON,因此它会成为一个给定的。

从脚本读取到xml中。

System.Xml.XmlDocument xml = new System.Xml.XmlDocument(); xml.LoadXml(jsonFieldText /*"<big><b>text\n</b></big>"*/);

从那里,你可以使用Xpath或循环弄清楚你的树结构。