[英]Newtonsoft JSON.NET deserializing to a typed object
I'd like to use JSon.net to deserialize a flickr.com photoset (see http://www.flickr.com/services/api/flickr.photosets.getPhotos.html ) an example of the JSON I get is 我想用JSon.net反序列化一个flickr.com photoset(参见http://www.flickr.com/services/api/flickr.photosets.getPhotos.html )我得到的JSON的一个例子是
{
photoset: {
id: "72154517991528243",
primary: "6346929005",
owner: "9999999@N00",
ownername: "myname",
photo: [
{
id: "6340104934",
secret: "18ab51078a",
server: "6106",
farm: 7,
title: "Day #1/30 - homemade kanelbullar",
isprimary: "0"
}
.... lots of these photos...
],
page: 1,
per_page: 500,
perpage: 500,
pages: 1,
total: "18"
},
stat: "ok"
}
the classes I am using are these: 我正在使用的类是这些:
class FlickrSet
{
Photoset photoset {get;set;}
string stat{get;set;}
}
class Photoset
{
public string id { get; set; }
public string primary { get; set; }
public string owner { get; set; }
public string ownername { get; set; }
public List<Photo> photo { get; set; }
public int page { get; set; }
public int per_page { get; set; }
public int perpage { get; set; }
public int pages { get; set; }
public string total { get; set; }
}
class Photo
{
public string id { get; set; }
public string secret { get; set; }
public string server { get; set; }
public int farm { get; set; }
public string title { get; set; }
public string isprimary { get; set; }
}
when I use them to deserialize: 当我使用它们反序列化时:
var s= JsonConvert.DeserializeObject<FlickrSet>(outPut );
s
has both members null. s
两个成员均为null。
I've tried to match strings and ints and Lists, but I have probably made some errors. 我试图匹配字符串和整数和列表,但我可能犯了一些错误。 Thanks everyone! 感谢大家!
there were two mistakes: the properties on flickrset were not public and the photos are an array not a List<> (don't know why) class FlickrSet { 有两个错误:flickrset上的属性未公开,并且照片是数组,而不是List <>(不知道为什么)。class FlickrSet {
**public** Photoset photoset {get;set;}
**public** string stat{get;set;}
}
class Photoset
{
public string id { get; set; }
public string primary { get; set; }
public string owner { get; set; }
public string ownername { get; set; }
public **Photo[]** photo { get; set; }
public int page { get; set; }
public int per_page { get; set; }
public int perpage { get; set; }
public int pages { get; set; }
public string total { get; set; }
}
class Photo
{
public string id { get; set; }
public string secret { get; set; }
public string server { get; set; }
public int farm { get; set; }
public string title { get; set; }
public string isprimary { get; set; }
}
System.Web.Script.Serialization.JavaScriptSerializer js = new system.Web.Script.Serialization.JavaScriptSerializer();
return js.Deserialize<FlickrSet>(value);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.