博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Json序列化与反序列化
阅读量:5118 次
发布时间:2019-06-13

本文共 2259 字,大约阅读时间需要 7 分钟。

转载自 

Json序列化和反序列化指的是:对象序列化为JSON,并可用于从 JSON 反序列化对象

在.net 3.5中

名字空间:System.Runtime.Serialization.Json

但程序集是: System.ServiceModel.Web.dll

 

1DataContractJsonSerializer

构造方法很多。

 参见:

介绍这个类其中2个方法:

1 WriteObject方法

有好种重载,这里测试一个:

public override void WriteObject(Stream stream,Object graph)

测试:

 
public void TestJsonSerialize()
{
    Customer customer = new Customer { Unid = 1, Name = "宋江", Call = "89589689" };
    DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(Customer)); 
    FileStream fs = new FileStream("json.txt", FileMode.Create);
    ds.WriteObject(fs, customer);
    fs.Close();
}
 

进行Json序列化时,类型不必添加修饰标签

在bin\debug里可以看到json串。

有关json串请见:

 

2 ReadObject方法

重载很多。

public override Object ReadObject(Stream stream)

测试:

 
public void TestJsonDeserialize()
{
    DataContractJsonSerializer ds = 
        new DataContractJsonSerializer(typeof(Customer)); 
    FileStream fs = new FileStream("json.txt", FileMode.Open);
    var cc = ds.ReadObject(fs);
    fs.Close();
}
 

 

2JavaScriptSerializer

为启用 AFAX 的应用程序提供序列化和反序列化功能

名字空间:System.Web.Script.Serialization

程序集:System.Web.Extensions(在 System.Web.Extensions.dll 中)

 参见:

说其中2个方法

1 Serialize方法 

Serialize(Object)
Serialize(Object, StringBuilder)

 

 
public void TestJsSerialize()
{
    Customer customer = new Customer { Unid = 1, Name = "宋江", Call = "89589689" };
    JavaScriptSerializer js = new JavaScriptSerializer(); 
    Console.WriteLine(js.Serialize(customer));
}
  

输出串:{"Unid":1,"Name":"宋江","Call":"89589689"}

 

2 Deserialize方法

 
public void TestJsDeserialize()
{
    string str = File.ReadAllText("jsjson.txt");
    JavaScriptSerializer js = new JavaScriptSerializer();
    Customer customer = js.Deserialize<Customer>(str); 
    Console.WriteLine(customer.Name);
}
 

 

3Json.net

这是一个第三方工具

请见:

名字空间:Newtonsoft.Json

添加Newtonsoft.Json.dll程序集

 

其中2个方法: 

SerializeObject方法

 
public void TestJsonnetSerialize()
{
    Customer customer = new Customer { Unid = 1, Name = "宋江", Call = "89589689" };
    string strJson=JsonConvert.SerializeObject(customer);
    StreamWriter sw = File.CreateText("jsonnet.txt");
    sw.Write(strJson);
    sw.Close();
}
  

DeserializeObject方法

 
public void TestJsonnetDeserialize()
{
    string str = File.ReadAllText("jsonnet.txt");
    Customer customer = JsonConvert.DeserializeObject<Customer>(str);
    Console.WriteLine(customer.Name);
}
 

 

转载于:https://www.cnblogs.com/abc8023/p/3736485.html

你可能感兴趣的文章
下一代操作系统与软件
查看>>
【iOS越狱开发】如何将应用打包成.ipa文件
查看>>
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>
Yii2 Lesson - 03 Forms in Yii
查看>>
Python IO模型
查看>>
Ugly Windows
查看>>
DataGridView的行的字体颜色变化
查看>>
Java再学习——关于ConcurrentHashMap
查看>>
如何处理Win10电脑黑屏后出现代码0xc0000225的错误?
查看>>
局域网内手机访问电脑网站注意几点
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Day19内容回顾
查看>>
第七次作业
查看>>
SpringBoot项目打包
查看>>
Linux操作系统 和 Windows操作系统 的区别
查看>>
《QQ欢乐斗地主》山寨版
查看>>
文件流的使用以及序列化和反序列化的方法使用
查看>>
Android-多线程AsyncTask
查看>>
第一个Spring冲刺周期团队进展报告
查看>>
红黑树 c++ 实现
查看>>