C#/.net/WCF 使用DataMember Order 無視屬性自上而下的輸出順序,自定義Json輸出排序,該方法大神也不一定會!
阿新 • • 發佈:2019-04-11
color json反序列 方法 write pre bject mar ets Coding
1 static void Main(string[] args) 2 { 3 Models m = new Models() { a = "1", b = "2" }; 4 string json=JsonSerializer<Models>(m); 5 Console.WriteLine(json); 6 //輸出結果:b在a前邊 7 //{"b":"2","a":"1"} 8 } 9 //自定義類 10 [DataContract] 11 public class Models 12 { 13 //Order索引從0開始,越小越靠前 14 [DataMember(Order = 2)] 15 public string a { get; set; } 16 [DataMember(Order = 1)] 17 public string b { get; set; } 18 19 }20 //JSON序列化 21 public static string JsonSerializer<T>(T t) 22 { 23 DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); 24 MemoryStream ms = new MemoryStream(); 25 ser.WriteObject(ms, t); 26 stringjsonString = Encoding.UTF8.GetString(ms.ToArray()); 27 ms.Close(); 28 return jsonString; 29 } 30 /// <summary> 31 /// JSON反序列化 32 /// </summary> 33 public static T JsonDeserialize<T>(string jsonString) 34 { 35 DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); 36 MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)); 37 T obj = (T)ser.ReadObject(ms); 38 return obj; 39 }
C#/.net/WCF 使用DataMember Order 無視屬性自上而下的輸出順序,自定義Json輸出排序,該方法大神也不一定會!