这次给大家带来JSON序列化与反序列化实现方法(附代码),JSON序列化与反序列化实现的注意事项有哪些,下面就是实战案例,一起来看一下。
一、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在SystemRuntimeSerializationJson命名空间下,NET Framework 5包含在SystemServiceModelWebdll中,需要添加对其的引用;NET Framework 4在SystemRuntimeSerialization中。
利用DataContractJsonSerializer序列化和反序列化的代码:using System;
using SystemCollectionsGeneric;
using SystemLinq;
using SystemWeb;
using SystemRuntimeSerializationJson;
using SystemIO;
using SystemText;
///
/// JSON序列化和反序列化辅助类
///
public class JsonHelper
{
///
/// JSON序列化
///
public static string JsonSerializer(T t)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream();
serWriteObject(ms, t);
string jsonString =