C#编程之JSON序列化与反序列化

1、在C#管理NuGet程序包中添加Json.NET

C#编程之JSON序列化与反序列化_第1张图片

2、C#将对象序列化成JSON字符串

模型类1

/// 
    /// JSON字符串模型.是否出错
    /// 
    public class ErrorModel
    {
        #region  属性
        /// 
        /// 是否出错
        /// 
        public int Error { set; get; }
        #endregion

        #region  构造函数
        
        /// 
        /// 禁止使用空构造函数
        /// 
        private ErrorModel() { }

        /// 
        /// 构造函数
        /// 
        /// 错误标识,0表示没有错误,1表示有错误
        public ErrorModel(int error)
        {
            this.Error = error;
        }
        #endregion
    }

模型类2

 /// 
    /// JSON字符串模型.返回信息
    /// 
    public class MsgModel
    {
        #region  属性
        /// 
        /// 返回信息
        /// 
        public string Msg { set; get; }
        #endregion

        #region 构造函数
        /// 
        /// 禁止使用空构造函数
        /// 
        private MsgModel() { }
        /// 
        /// 构造函数
        /// 
        /// 返回信息,没有错误信息Msg=“Success“,
        /// 否则,Msg中包含错误信息。
        public MsgModel(string msg)
        {
            this.Msg = msg;
        }
        #endregion 
    }

模型类3

 /// 
    /// JSON字符串模型.数据
    /// 
    public class DataModel
    {
        #region 属性
        /// 
        /// 返回数据
        /// 
        public IList Data { set; get; }
        #endregion

        #region  构造函数
        /// 
        /// 禁止使用空构造函数
        /// 
        private DataModel() { }
        /// 
        /// 构造函数
        /// 
        /// 返回数据
        public DataModel(IList data)
        {
            this.Data = data;
        }
        #endregion 
    }

生成JSON字符串

 /// 
        /// 生成JSON字符串
        /// 
        /// 错误编码,0查询成功,1查询失败
        /// 返回信息,没有错误信息Msg=“Success“,
        /// 否则,Msg中包含错误信息。
        /// 返回数据
        /// 
        public string createJSON(int error, string msg, IList 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 

JObject反序列化的是对象{},JArray反序列化的是数组[]。

附加链接:Json.NET Document


转载于:https://www.cnblogs.com/haxianhe/p/9271197.html

你可能感兴趣的:(C#编程之JSON序列化与反序列化)