本帖最后由 marcofly 于 2014-3-11 15:56 编辑
关于Newtonsoft读取json数据,在网上看到的都是使用JsonTextReader,然后,通过while循环读取出来。
如以下代码:
[C#] 纯文本查看 复制代码 string json = @"{
'CPU': 'Intel',
'PSU': '500W',
'Drives': [
'DVD read/writer'
/*(broken)*/,
'500 gigabyte hard drive',
'200 gigabype hard drive'
]
}";
JsonTextReader reader = new JsonTextReader(new StringReader(json));
while (reader.Read())
{
if (reader.Value != null)
Console.WriteLine("Token: {0}, Value: {1}", reader.TokenType, reader.Value);
else
Console.WriteLine("Token: {0}", reader.TokenType);
}
// Token: StartObject
// Token: PropertyName, Value: CPU
// Token: String, Value: Intel
// Token: PropertyName, Value: PSU
// Token: String, Value: 500W
// Token: PropertyName, Value: Drives
// Token: StartArray
// Token: String, Value: DVD read/writer
// Token: Comment, Value: (broken)
// Token: String, Value: 500 gigabyte hard drive
// Token: String, Value: 200 gigabype hard drive
// Token: EndArray
// Token: EndObject
这种方法不够灵活,比如,我想这样使用:
if(reader[2]=="") return;
就是想通过下标先对json数据进行读取,而不是遍历一遍。
这是官方文档:http://james.newtonking.com/json/help/index.html#
|