我有一个feed对象,它填充了反序列化的json数据。我试图在2个xamarin android活动之间传递一个feed对象。
我怎样才能做到这一点?
我知道putseriazable,但我不知道如何实现这一点。
public class Feed
{
public class Author
{
public int id { get; set; }
public string slug { get; set; }
public string name { get; set; }
public string first_name { get; set; }
public string last_name { get; set; }
public string nickname { get; set; }
public string url { get; set; }
public string description { get; set; }
}
public class CustomFields
{
public List<string> sno_headline { get; set; }
public List<string> sno_deck { get; set; }
public List<string> sno_format { get; set; }
public List<string> sno_longform_order { get; set; }
public List<string> sno_longform_title { get; set; }
public List<string> sno_sr_tag { get; set; }
public List<string> sno_sr_cat { get; set; }
public List<string> sno_sr_title { get; set; }
public List<string> sno_longform_main_title { get; set; }
public List<string> sno_rails_number { get; set; }
public List<string> sno_rails_writer { get; set; }
public List<string> sno_rails_type { get; set; }
public List<string> sno_rails_stories { get; set; }
public List<string> sno_longform_image { get; set; }
public List<string> sno_longform_image_master { get; set; }
public List<string> sno_teaser { get; set; }
public List<string> writer { get; set; }
public List<string> jobtitle { get; set; }
public List<string> featureimage { get; set; }
public List<string> video { get; set; }
public List<string> videographer { get; set; }
public List<string> videolocation { get; set; }
public List<string> related { get; set; }
public List<string> audio { get; set; }
public List<string> customlink { get; set; }
public List<string> story_sport { get; set; }
public List<string> teasertitle { get; set; }
public List<string> teaser { get; set; }
public List<string> grade { get; set; }
public List<string> showratings { get; set; }
public List<string> date { get; set; }
public List<string> ourscore { get; set; }
public List<string> theirscore { get; set; }
public List<string> opponent { get; set; }
public List<string> sport { get; set; }
}
public class Full
{
public string url { get; set; }
public int width { get; set; }
public int height { get; set; }
}
public class Thumbnail
{
public string url { get; set; }
public int width { get; set; }
public int height { get; set; }
}
public class Medium
{
public string url { get; set; }
public int width { get; set; }
public int height { get; set; }
}
public class Large
{
public string url { get; set; }
public int width { get; set; }
public int height { get; set; }
}
public class Carouselthumb
{
public string url { get; set; }
public int width { get; set; }
public int height { get; set; }
}
public class Tsmediumblock
{
public string url { get; set; }
public int width { get; set; }
public int height { get; set; }
}
public class Tsbigblock
{
public string url { get; set; }
public int width { get; set; }
public int height { get; set; }
}
public class Small
{
public string url { get; set; }
public int width { get; set; }
public int height { get; set; }
}
public class ThumbnailImages
{
public Full full { get; set; }
public Thumbnail thumbnail { get; set; }
public Medium medium { get; set; }
public Large large { get; set; }
public Carouselthumb carouselthumb { get; set; }
public Tsmediumblock tsmediumblock { get; set; }
public Tsbigblock tsbigblock { get; set; }
public Small small { get; set; }
}
public class Post
{
public int id { get; set; }
public string type { get; set; }
public string slug { get; set; }
public string url { get; set; }
public string status { get; set; }
public string title { get; set; }
public string title_plain { get; set; }
public string content { get; set; }
public string excerpt { get; set; }
public string date { get; set; }
public string modified { get; set; }
public List<object> categories { get; set; }
public List<object> tags { get; set; }
public Author author { get; set; }
public List<object> comments { get; set; }
public List<object> attachments { get; set; }
public int comment_count { get; set; }
public string comment_status { get; set; }
public CustomFields custom_fields { get; set; }
public string thumbnail { get; set; }
public string thumbnail_size { get; set; }
public ThumbnailImages thumbnail_images { get; set; }
}
public class Query
{
public bool ignore_sticky_posts { get; set; }
}
public class RootObject
{
public string status { get; set; }
public int count { get; set; }
public int count_total { get; set; }
public int pages { get; set; }
public List<Post> posts { get; set; }
public Query query { get; set; }
}
}
答案 0 :(得分:2)
您可以使用Newtonsoft Json将类转换为json字符串,然后传递字符串,然后在新活动中对其进行反序列化。
确保您引用Newtonsoft JSON
var MySerializedObject = JsonConvert.SerializeObject(MyComplexObject);
MyIntent.PutExtra("MyComplexObject", MySerializedObject);
然后,让它回到对象......
var MyJsonString = Intent.GetStringExtra("MyComplexObject");
var MyObject = JsonConvert.DeserializeObject<ObjectType>(MyJsonString);
请确保MyJsonString正是您所期望的,并且在反序列化之前不是null,否则它会抛出异常。