using System;
using System.Runtime.Serialization.Json;
using System.Runtime.Serialization;
using System.IO;
using System.Text;
using System.Collections.Generic;
namespace TestJson
{
[DataContract]
public class DataItem : JSON<DataItem>{
[DataMember]
public string username = "test";
}
[DataContract]
public class Config:TestJson.JSON<Config>
{
public Config(){
encoding = "utf-8";
}
[DataMember(EmitDefaultValue = true)]
public string id = "100";
[DataMember]
public string encoding { get; set; }
[DataMember]
public List<DataItem> plugins{get;set;}
}
[DataContract]
/// <summary>
/// Description of JsonTest.
/// </summary>
public class JSON<T>
{
public string Stringify(){
return Stringify(Encoding.UTF8);
}
public string Stringify(Encoding encode){
var serializer = new DataContractJsonSerializer(typeof(T));
var stream = new MemoryStream();
serializer.WriteObject(stream, this);
byte[] dataBytes = new byte[stream.Length];
stream.Position = 0;
stream.Read(dataBytes, 0, (int)stream.Length);
string dataString = encode.GetString(dataBytes);
stream.Close();
serializer = null;
stream = null;
return dataString;
}
public static T Parse(string text)
{
return Parse(text, Encoding.UTF8);
}
public static T Parse(string text, Encoding encode)
{
var serializer = new DataContractJsonSerializer(typeof(T));
var mStream = new MemoryStream(encode.GetBytes(text));
T readConfig = ( T)serializer.ReadObject(mStream);
mStream.Close();
serializer = null;
mStream = null;
return readConfig;
}
}
}
[C#]JSON框架
最新推荐文章于 2024-08-04 09:29:18 发布
本文深入探讨了C#中处理JSON的各种框架,包括Newtonsoft.Json和System.Text.Json的使用方法,对比了两者在序列化和反序列化时的性能差异,并提供了实际示例帮助读者理解和应用。
摘要由CSDN通过智能技术生成