Map entity to JSON using JavaScriptSerializer

前端 未结 2 559
离开以前
离开以前 2020-12-19 04:11

My entities are like this:

class Address
{
     public string Number { get; set; }
     public string Street { get; set; }
     public string City { get; set         


        
2条回答
  •  臣服心动
    2020-12-19 04:53

    You need to add DataContract attributes to your classes and DataMember to the properties. Set Name property of DataMemeber attribute to your custom property name and Order property to define the order.

    [DataContract]
    public class Person
    {
        [DataMember(Name = "PER_NAME", Order = 1)]
        public string Name { get; set; }
    
        [DataMember(Name = "PER_AGE", Order = 2)]
        public int Age { get; set; }
    
        [DataMember(Name = "PER_ADDRESS", Order = 3)]
        public Address PostalAddress { get; set; }
    }
    

    Then you can do this:

    var newPerson = new Person()
    {
        Name = "Kushan",
        Age = 25,
        PostalAddress = new Address()
        {
            Number = "No 25",
            Street = "Main Street",
            City = "Matale",
            Country = "Sri Lanka"
        }
    };
    
    MemoryStream stream = new MemoryStream();
    DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Person));
    ser.WriteObject(stream, newPerson);
    

    To check the result:

    var result = Encoding.ASCII.GetString(stream.ToArray());
    
    {"PER_NAME":"Kushan","PER_AGE":25,"PER_ADDRESS":{"ADD_NUMBER":"No 25","ADD_STREET":"Main Street","ADD_CITY":"Matale","ADD_COUNTRY":"Sri Lanka"}}
    

提交回复
热议问题