国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET中JSON的序列化和反序列化使用說明

2024-07-10 12:41:48
字體:
來源:轉載
供稿:網友
在網站應用中使用JSON的場景越來越多,本文介紹 ASP.NET中JSON的序列化和反序列化,主要對JSON的簡單介紹,ASP.NET如何序列化和反序列化的處理,在序列化和反序列化對日期時間、集合、字典的處理。
一、JSON簡介
JSON(JavaScript Object Notation,JavaScript對象表示法)是一種輕量級的數據交換格式。
JSON是“名值對”的集合。結構由大括號'{}',中括號'[]',逗號',',冒號':',雙引號'“”'組成,包含的數據類型有Object,Number,Boolean,String,Array, NULL等。
JSON具有以下的形式:
對象(Object)是一個無序的“名值對”集合,一個對象以”{”開始,”}”結束。每個“名”后跟著一個”:”,多個“名值對”由逗號分隔。如:
var user={"name":"張三","gender":"男","birthday":"1980-8-8"}
數組(Array)是值的有序集合,一個數組以“[”開始,以“]”結束,值之間使用“,”分隔。如:
var userlist=[{"user":{"name":"張三","gender":"男","birthday":"1980-8-8"}},{"user":{"name":"李四","gender":"男","birthday":"1985-5-8"}}];
字符串(String)是由雙引號包圍的任意數量的Unicode字符的集合,使用反斜線轉義。
二、對JSON數據進行序列化和反序列化
可以使用DataContractJsonSerializer類將類型實例序列化為JSON字符串,并將JSON字符串反序列化為類型實例。 DataContractJsonSerializer在System.Runtime.Serialization.Json命名空間下,.NET Framework 3.5包含在System.ServiceModel.Web.dll中,需要添加對其的引用;.NET Framework 4在System.Runtime.Serialization中。
利用DataContractJsonSerializer序列化和反序列化的代碼:
代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Runtime.Serialization.Json;
using System.IO;
using System.Text;
/// <summary>
/// JSON序列化和反序列化輔助類
/// </summary>
public class JsonHelper
{
/// <summary>
/// JSON序列化
/// </summary>
public static string JsonSerializer<T>(T t)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream();
ser.WriteObject(ms, t);
string jsonString = Encoding.UTF8.GetString(ms.ToArray());
ms.Close();
return jsonString;
}
/// <summary>
/// JSON反序列化
/// </summary>
public static T JsonDeserialize<T>(string jsonString)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
T obj = (T)ser.ReadObject(ms);
return obj;
}
}

序列化Demo:
簡單對象Person:
代碼如下:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}

序列化為JSON字符串:
代碼如下:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 皋兰县| 烟台市| 临汾市| 张家港市| 广安市| 乐山市| 奉节县| 永定县| 郸城县| 页游| 太仆寺旗| 临猗县| 嘉祥县| 垣曲县| 尤溪县| 奉节县| 蓬莱市| 新宁县| 临邑县| 沂南县| 招远市| 越西县| 秀山| 西充县| 礼泉县| 建阳市| 南陵县| 罗江县| 庄浪县| 寻乌县| 闸北区| 永定县| 洛浦县| 攀枝花市| 郸城县| 富平县| 察雅县| 宕昌县| 额尔古纳市| 杂多县| 深州市|