[英]Reading JSON files with C# and JSON.net
我很难理解如何使用JSON.net来读取json文件。
该文件看起来像这样:
"version": {
"files": [
{
"url": "http://www.url.com/",
"name": "someName"
},
{
"name": "someOtherName"
"url": "http://www.url.com/"
"clientreq": true
}, ....
我真的不知道我怎么能读到这个文件..我需要做的是读取行并通过“url”下载文件..我知道如何下载文件等等,但我不知道我如何使用JSON.net读取json文件并循环遍历每个部分,并下载文件..
你能帮忙吗?
最简单的方法是将json反序列化为这样的动态对象
然后,您可以访问其属性循环以获取URL
dynamic result = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString);
var urls = new List<string>();
foreach(var file in result.version.files)
{
urls.Add(file.url);
}
http://json2csharp.com/可帮助您根据JSON数据类型创建C#类。 一旦您的类与您的数据匹配,您可以使用Json.NET反序列化,然后使用您的数据:
var myMessage = JsonConvert.DeserializeObject<MyMessage>(myString);
foreach (var file in myMessage.Version.Files)
{
// download file.Url
}
或者您可以将其作为dynamic
对象访问:
dynamic myMessage = JsonConvert.DeserializeObject(myString);
foreach (var file in myMessage.version.files)
{
// download file.url
}
如果您使用类,它们可能是:
public class File
{
public Uri Url { get; set; }
public string Name { get; set; }
public bool? ClientReq { get; set; }
}
public class Version
{
public IList<File> Files { get; set; }
}
public class MyMessage
{
public Version Version { get; set; }
}
(请注意,Json.Net非常智能,可以映射大小写不同的属性,并将URL转换为Uri对象)当字符串如下时,它可以工作:
string myString = @"{""version"": {
""files"": [
{
""url"": ""http://www.url.com/"",
""name"": ""someName""
},
{
""name"": ""someOtherName"",
""url"": ""http://www.url.com/"",
""clientreq"": true
}]}}";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.