http://json2csharp.com/帮助您根据创建C#类的JSON数据类型。一旦你有你的类来匹配你的数据,你可以用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转换成开放的对象)它当字符串是这样的:
string myString = @"{""version"": {
""files"": [
{
""url"": ""http://www.url.com/"",
""name"": ""someName""
},
{
""name"": ""someOtherName"",
""url"": ""http://www.url.com/"",
""clientreq"": true
}]}}";
我结束了使用这种方法,因为它看起来最简单,似乎工作!谢谢一堆。对于我使用streamreader来读取文件的内容与readtoend,然后我用作“jsonString” –