jason和对象之间的转换

//Donet3.5自带了DLL处理json串
//注意引用:System.Runtime.Serialization,System.ServiceModel.Web

  namespace ConsoleApplication7
{
public class Test
{
    public string aaa="aa";
    public string ccc= "ccc";
    public List<Item> items = new List<Item>();

    public Test()
    {
        this.items.Add(new Item());
        this.items.Add(new Item());
        this.items.Add(new Item());
    }
}

public class Item
{
    public string item="aa";
}
class Program
{
    static void Main(string[] args)
    {
        string aaa = JsonTools.ObjectToJson(new Test());
        Console.WriteLine(aaa);

        Test aa = (Test)JsonTools.JsonToObject(aaa, new Test());
        Console.ReadKey();
    }
}

public class JsonTools
{
    // 从一个对象信息生成Json串
    public static string ObjectToJson(object obj)
    {
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
        MemoryStream stream = new MemoryStream();
        serializer.WriteObject(stream, obj);
        byte[] dataBytes = new byte[stream.Length];
        stream.Position = 0;
        stream.Read(dataBytes, 0, (int)stream.Length);
        return Encoding.UTF8.GetString(dataBytes);
    }
    // 从一个Json串生成对象信息
    public static object JsonToObject(string jsonString, object obj)
    {
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
        MemoryStream mStream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
        return serializer.ReadObject(mStream);
    }
}
}

对比的一个程序:
namespace ConsoleApplication9
{
public class Test
{
public string aaa = "aa";
public string ccc = "ccc";
public List<Item> items = new List<Item>();

    public Test()
    {
        this.items.Add(new Item());
        this.items.Add(new Item());
        this.items.Add(new Item());
    }
}

public class Item
{
    public string item = "aa";
    public string item2 = "bb";
}
class Program
{
    static void Main(string[] args)
    {
        List<Item> items = new List<Item>();
        items.Add(new Item());
        items.Add(new Item());
        items.Add(new Item());

        string aaa = JsonTools.ObjectToJson(new Test());
        Console.WriteLine(aaa);

        string ccc = JsonTools.ObjectToJson(items);
        Console.WriteLine(ccc);

        Test aa = (Test)JsonTools.JsonToObject(aaa, new Test());
        Console.ReadKey();

        List<Item> bb = (List<Item>)JsonTools.JsonToObject(ccc, items);
        Console.ReadKey();
    }
}

public class JsonTools
{
    // 从一个对象信息生成Json串
    public static string ObjectToJson(object obj)
    {
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
        MemoryStream stream = new MemoryStream();
        serializer.WriteObject(stream, obj);
        byte[] dataBytes = new byte[stream.Length];
        stream.Position = 0;
        stream.Read(dataBytes, 0, (int)stream.Length);
        return Encoding.UTF8.GetString(dataBytes);
    }
    // 从一个Json串生成对象信息
    public static object JsonToObject(string jsonString, object obj)
    {
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
        MemoryStream mStream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
        return serializer.ReadObject(mStream);
    }
}

}

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,841评论 1赞 32
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 29,194评论 1赞 45
  • 浮桥,柳岸,花海徜徉,芙蕖芦苇轻荡。朝日斜晖泛粼光,丽景绵延日月长。冬温夏清一衣水,佛心静,佑古城,观音望...
    七曜一心阅读 266评论 1赞 4
  • 生命的意义 蜜蜂采蜜,蚂蚁搬家,水牛犁地,活着即劳动—生命的意义;彻夜不眠,努力学习,辛苦工作,活着即奋斗—生命的...
    甜的太阳阅读 171评论 0赞 0
  • 人世间,最幸运的一件事是什么?你喜欢的人也刚好喜欢你,你们可以走到一起,十年以后、二十年以后、三十年以后,你们还是...
    爱情摇篮阅读 597评论 1赞 2

友情链接更多精彩内容