Reputation: 537
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
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