P John Raj
P John Raj

Reputation: 537

Newtonsoft serialization

I need some help with custom serialization using Newtonsoft Json (Json.Net). I have classes like below:

public class Person
{
    [JsonProperty(PropertyName = "PersonName")]
    public string Name { get; set; }
    [JsonIgnore]
    public int Age { get; set; } 
    public Address PersonAddress { get; set; }
}

public class Address 
{
    [JsonProperty(PropertyName = "Address1")]
    public string Address1 { get; set; }
    [JsonIgnore]
    public string Address2 { get; set; }
    [JsonProperty(PropertyName = "City")]
    public string City { get; set; }
    [JsonProperty(PropertyName = "State")]
    public string State { get; set; }
    [JsonIgnore]
    public string Country { get; set; } 
}

When I serialize the above class it should return output like below:

{
"PersonName":"Name",
"Address1":"Address1",
"City":"City",
"State":"state"
}

How can I do it using Newtonsoft?

Upvotes: 0

Views: 202

Answers (1)

Mahdi
Mahdi

Reputation: 3349

You can create a third class as follows:

public class Rootobject
{
    public string PersonName { get; set; }
    public string Address1 { get; set; }
    public string City { get; set; }
    public string State { get; set; }
}

Then, an object out of it like this:

var rootObject = new Rootobject()
{
    PersonName = person.Name,
    Address1 = address.Address1,
    City = address.City,
    State = address.State
};

And finally serialize it using JsonCovert:

var result = JsonConvert.SerializeObject(rootObject);

Upvotes: 2

Related Questions