? JSON是專門為瀏覽器中的網(wǎng)頁上運(yùn)行的JavaScript代碼而設(shè)計(jì)的一種數(shù)據(jù)格式。在網(wǎng)站應(yīng)用中使用JSON的場(chǎng)景越來越多,本文介紹ASP.NET中JSON的序列化和反序列化,主要對(duì)JSON的簡單介紹,ASP.NET如何序列化和反序列化的處理,在序列化和反序列化對(duì)日期時(shí)間、集合、字典的處理。
??? 一、JSON簡介
???? JSON(JavaScript Object Notation,JavaScript對(duì)象表示法)是一種輕量級(jí)的數(shù)據(jù)交換格式。
???? JSON是“名值對(duì)”的集合。結(jié)構(gòu)由大括號(hào)'{}',中括號(hào)'[]',逗號(hào)',',冒號(hào)':',雙引號(hào)'“”'組成,包含的數(shù)據(jù)類型有Object,Number,Boolean,String,Array, NULL等。
???? JSON具有以下的形式:
???? 對(duì)象(Object)是一個(gè)無序的“名值對(duì)”集合,一個(gè)對(duì)象以”{”開始,”}”結(jié)束。每個(gè)“名”后跟著一個(gè)”:”,多個(gè)“名值對(duì)”由逗號(hào)分隔。如:
var user={"name":"張三","gender":"男","birthday":"1980-8-8"}
???? 數(shù)組(Array)是值的有序集合,一個(gè)數(shù)組以“[”開始,以“]”結(jié)束,值之間使用“,”分隔。如:
var userlist=[{"user":{"name":"張三","gender":"男","birthday":"1980-8-8"}},{"user":{"name":"李四","gender":"男","birthday":"1985-5-8"}}];
??? 字符串(String)是由雙引號(hào)包圍的任意數(shù)量的Unicode字符的集合,使用反斜線轉(zhuǎn)義。
??? 二、對(duì)JSON數(shù)據(jù)進(jìn)行序列化和反序列化
???? 可以使用DataContractJsonSerializer類將類型實(shí)例序列化為JSON字符串,并將JSON字符串反序列化為類型實(shí)例。DataContractJsonSerializer在System.Runtime.Serialization.Json命名空間下,.NET Framework 3.5包含在System.ServiceModel.Web.dll中,需要添加對(duì)其的引用;.NET Framework 4在System.Runtime.Serialization中。
???? 利用DataContractJsonSerializer序列化和反序列化的代碼:
1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Web;
5: using System.Runtime.Serialization.Json;
6: using System.IO;
7: using System.Text;
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;
}
}
}
.netcore?文章來源:http://www.zghlxwxcb.cn/news/detail-608284.html
System.Text.Json.JsonSerializer.Serialize(dataEntity)文章來源地址http://www.zghlxwxcb.cn/news/detail-608284.html
到了這里,關(guān)于ASP.NET中JSON的序列化和反序列化的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!