1. 程式人生 > >Json的序列化與反序列化

Json的序列化與反序列化

.net

序列化:就是將字串集合(字串物件)轉化為json格式。

反序列化:將json格式的資料串轉換為字串集合。

最近在使用NFine框架做東西的時候,使用到了Json,下面是事例程式碼:

首先是Json類 提供的序列化與反序列化的函式

using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using System.Data;

namespace NFine.Code
{
    public static class Json
    {
        public static object ToJson(this string Json)            
        {
            return Json == null ? null : JsonConvert.DeserializeObject(Json);
        }
        public static string ToJson(this object obj)                

        {
            var timeConverter = new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" };
            return JsonConvert.SerializeObject(obj, timeConverter);
        }
        public static string ToJson(this object obj, string datetimeformats)          
        {
            var timeConverter = new IsoDateTimeConverter { DateTimeFormat = datetimeformats };
            return JsonConvert.SerializeObject(obj, timeConverter);
        }
        public static T ToObject<T>(this string Json)               
        {
            return Json == null ? default(T) : JsonConvert.DeserializeObject<T>(Json);
        }
        public static List<T> ToList<T>(this string Json)            
        {
            return Json == null ? null : JsonConvert.DeserializeObject<List<T>>(Json);
        }
        public static DataTable ToTable(this string Json)             
        {
            return Json == null ? null : JsonConvert.DeserializeObject<DataTable>(Json);
        }
        public static JObject ToJObject(this string Json)               
        {
            return Json == null ? JObject.Parse("{}") : JObject.Parse(Json.Replace(" ", ""));
        }
    }
}

下面是序列化例項:
public string GetJson()
        {
            TestApp app = new TestApp();
            var data = app.GetForm();     data是通過app.GetForm() 得到的一個list<>
            return data.ToJson();    將list字串集合序列化轉化為Json資料  方便後邊的傳輸工作
        }

下面是反序列化例項
 public List<TestItemsEntity> GetList()
        {
            return service.IQueryable().ToList();   service.IQueryable()是一個接收到的Json格式的字串組合
        }


上面就是簡單介紹Json序列化與反序列化的大致過程,詳細的只有自己體會才會瞭解的更深。