C#编程之JSON序列化与反序列化
来源:互联网 发布:开票接口软件使用 编辑:程序博客网 时间:2024/05/22 10:11
1、在C#管理NuGet程序包中添加Json.NET
2、C#将对象序列化成JSON字符串
模型类1
/// <summary> /// JSON字符串模型.是否出错 /// </summary> public class ErrorModel { #region 属性 /// <summary> /// 是否出错 /// </summary> public int Error { set; get; } #endregion #region 构造函数 /// <summary> /// 禁止使用空构造函数 /// </summary> private ErrorModel() { } /// <summary> /// 构造函数 /// </summary> /// <param name="error">错误标识,0表示没有错误,1表示有错误</param> public ErrorModel(int error) { this.Error = error; } #endregion }
模型类2
/// <summary> /// JSON字符串模型.返回信息 /// </summary> public class MsgModel { #region 属性 /// <summary> /// 返回信息 /// </summary> public string Msg { set; get; } #endregion #region 构造函数 /// <summary> /// 禁止使用空构造函数 /// </summary> private MsgModel() { } /// <summary> /// 构造函数 /// </summary> /// <param name="msg">返回信息,没有错误信息Msg=“Success“, /// 否则,Msg中包含错误信息。</param> public MsgModel(string msg) { this.Msg = msg; } #endregion }
模型类3
/// <summary> /// JSON字符串模型.数据 /// </summary> public class DataModel { #region 属性 /// <summary> /// 返回数据 /// </summary> public IList<PN_GreDegreeModel> Data { set; get; } #endregion #region 构造函数 /// <summary> /// 禁止使用空构造函数 /// </summary> private DataModel() { } /// <summary> /// 构造函数 /// </summary> /// <param name="data">返回数据</param> public DataModel(IList<PN_GreDegreeModel> data) { this.Data = data; } #endregion }
生成JSON字符串
/// <summary> /// 生成JSON字符串 /// </summary> /// <param name="errorModel">错误编码,0查询成功,1查询失败</param> /// <param name="msgModel">返回信息,没有错误信息Msg=“Success“, /// 否则,Msg中包含错误信息。</param> /// <param name="list">返回数据</param> /// <returns></returns> public string createJSON(int error, string msg, IList<PN_GreDegreeModel> list) { //定义变量 string data = null; ArrayList aryList = new ArrayList(); //生成对象 ErrorModel errorModel = new ErrorModel(error); MsgModel msgModel = new MsgModel(msg); DataModel dataModel = new DataModel(list); //装箱 aryList.Add(errorModel); aryList.Add(msgModel); aryList.Add(list); //序列化 data = JsonConvert.SerializeObject(aryList); return data; }
3、C#将JSON字符串反序列化成对象
无数组:
//将json字符串转换为对象 JObject jObject = JObject.Parse(s);
有数组:
//将json字符串转换为对象 JObject jObject = (JObject)JsonConvert.Parse(getString); JArray jar = JArray.Parse(jObject["RTDataSets"].ToString()); //对收到的字符串进行解析 for (int j = 0; j <jar.Count; j++) { JObject job = JObject.Parse(jar[j].ToString()); tampAdds = (string)job["kksCode"]; JArray jarr = JArray.Parse(job["RTDataValues"].ToString()); JObject jobs = JObject.Parse(jarr[0].ToString()); value = (double)(jobs["Value"]); //_dict.Add(add,value); }
JObject反序列化的是对象{},JArray反序列化的是数组[]。
附加链接:Json.NET Document
0 0
- C#编程之JSON序列化与反序列化
- C#实现JSON序列化与反序列化介绍
- C# Json序列化与反序列化
- C#实现JSON序列化与反序列化介绍
- C# JSON字符串序列化与反序列化
- C# Json序列化与反序列化
- C# JSON字符串序列化与反序列化
- C# JSON字符串序列化与反序列化
- C# JSON字符串序列化与反序列化
- c# JSON序列化与反序列化
- C# JSON字符串序列化与反序列化
- C# Json 序列化与反序列化
- [参考]C# JSON字符串序列化与反序列化
- C# 对象JSON序列化与反序列化
- c#中json序列化与反序列化
- C# 序列化/反序列化 json
- C#序列、反序列化json对象
- JSON利器之序列化与反序列化
- 孩子们的游戏(圆圈中最后剩下的数)--约瑟夫环问题
- 面试题17:合并两个排序的链表
- uva1152
- 聊聊Linux动态链接中的PLT和GOT(1)——何谓PLT与GOT
- SHELL编程之特殊符号
- C#编程之JSON序列化与反序列化
- 面试题18:树的子结构
- 面试题19:二叉树的镜像
- GDI+(画图工具的创建)
- EThe Binding of Isaac
- 面试题20:顺时针打印矩阵
- 代码GG 公众号
- 面试题21:包含min函数的栈
- Reverse Bits