上面提到的JSON数据不会从Web服务或来自Web的任何其他来源获取。我将手动创建模板并将JSON格式的数据存储在本地计算机的文本文件中。我看过JSON.net包含完成工作的有用方法。到目前为止我使用的代码如下所示,它打印得恰当
WebClient w = new WebClient();
var data = w.DownloadString(@"D:\ComponentsJSON.txt");
//Read the file
JObject j = JObject.Parse(data);
Console.WriteLine("Name: " + j["name"]);
Console.WriteLine("Property1: " + j["property"][0]);
Console.WriteLine("Property2: " + j["property"][1]);
但是上面只能读取文本文件中的一行。当同一个文件中存在多个Json元素时,怎么办呢。
D:\ ComponentsJSON.txt的内容是:
[{"name":"WinWindow", "property" : ["Name","ClassName"], "value": ["MCP","OSCP"]},
{"name":"WinButton", "property" :["Name","ClassName"], "value": ["OK","Button"]}]
答案 0 :(得分:0)
Parse
方法用于解析特定对象,而不是反序列化整个文件。如果JSON包含一个数组,则需要调用JArray.Parse。 JObject只解析一个对象。
要读取任意字符串,请使用JsonConvert.DeserializeObject重载之一,例如:
var data=JsonConvert.DeserializeObject(data);
或
var items=JsonConvert.DeserializeObject<List<MyClass>>(data);
检查&#34; Serializing Collections&#34;在Json.NET的文档中