-2

I have a feed object, that is filled with deserialized json data. I am trying to pass a feed object between 2 xamarin android activities.

How can I accomplish this?

I am aware of putseriazable but i'm not sure how to implement this.

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; }
    }
}
HaveNoDisplayName
  • 8,291
  • 106
  • 37
  • 47
0xSingularity
  • 577
  • 6
  • 36

1 Answers1

2

You could use Newtonsoft Json to convert the class to a json string, and pass the string, then deserialize it in the new activity.

Make sure you reference Newtonsoft JSON

var MySerializedObject = JsonConvert.SerializeObject(MyComplexObject);
MyIntent.PutExtra("MyComplexObject", MySerializedObject);

Then, to get it back to the object...

var MyJsonString = Intent.GetStringExtra("MyComplexObject");
var MyObject = JsonConvert.DeserializeObject<ObjectType>(MyJsonString);

Just be sure that MyJsonString is exactly what you're expecting and is not null before deserializing, otherwise it can throw an exception.