如何将.NET对象与JSON字符串之间实现高效互转换?

2026-03-30 14:301阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计342个文字,预计阅读时间需要2分钟。

如何将.NET对象与JSON字符串之间实现高效互转换?

一:使用JavaScriptSerializer和Dictionary将对象转换为字符串csharpusing System.Collections.Generic;using System.Web.Script.Serialization;

Dictionary dic=new Dictionary();dic.Add(id, 1);dic.Add(name, jition);JavaScriptSerializer serializer=new JavaScriptSerializer();string json=serializer.Serialize(dic);

一:使用JavaScriptSerializer

Dictionary<string, string> dic = new Dictionary<string, string>();

dic.Add("id", "1");

dic.Add("name", "jition");

var serializer = new JavaScriptSerializer();

//将object对象转换为字符

var json = serializer.Serialize(dic);

//将json字符转换为object对象

var obj = serializer.Deserialize<Dictionary<string, string>>(json);

二:使用封装方法(DataContractJsonSerializer)

/// <summary>

/// 将C#数据实体转化为JSON数据

/// </summary>

/// <param name="obj">要转化的数据实体</param>

/// <returns>JSON格式字符串</returns>

public static string JsonSerialize<T>(T obj)

{

如何将.NET对象与JSON字符串之间实现高效互转换?

DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));

MemoryStream stream = new MemoryStream();

serializer.WriteObject(stream, obj);

stream.Position = 0;

StreamReader sr = new StreamReader(stream);

string resultStr = sr.ReadToEnd();

sr.Close();

stream.Close();

return resultStr;

}

/// <summary>

/// 将JSON数据转化为C#数据实体

/// </summary>

/// <param name="json">符合JSON格式的字符串</param>

/// <returns>T类型的对象</returns>

public static T JsonDeserialize<T>(string json)

{

//json 必须为 {name:"value",name:"value"} 的格式(要符合JSON格式要求)

DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));

MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(json.ToCharArray()));

T obj = (T)serializer.ReadObject(ms);

ms.Close();

return obj;

}

本文共计342个文字,预计阅读时间需要2分钟。

如何将.NET对象与JSON字符串之间实现高效互转换?

一:使用JavaScriptSerializer和Dictionary将对象转换为字符串csharpusing System.Collections.Generic;using System.Web.Script.Serialization;

Dictionary dic=new Dictionary();dic.Add(id, 1);dic.Add(name, jition);JavaScriptSerializer serializer=new JavaScriptSerializer();string json=serializer.Serialize(dic);

一:使用JavaScriptSerializer

Dictionary<string, string> dic = new Dictionary<string, string>();

dic.Add("id", "1");

dic.Add("name", "jition");

var serializer = new JavaScriptSerializer();

//将object对象转换为字符

var json = serializer.Serialize(dic);

//将json字符转换为object对象

var obj = serializer.Deserialize<Dictionary<string, string>>(json);

二:使用封装方法(DataContractJsonSerializer)

/// <summary>

/// 将C#数据实体转化为JSON数据

/// </summary>

/// <param name="obj">要转化的数据实体</param>

/// <returns>JSON格式字符串</returns>

public static string JsonSerialize<T>(T obj)

{

如何将.NET对象与JSON字符串之间实现高效互转换?

DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));

MemoryStream stream = new MemoryStream();

serializer.WriteObject(stream, obj);

stream.Position = 0;

StreamReader sr = new StreamReader(stream);

string resultStr = sr.ReadToEnd();

sr.Close();

stream.Close();

return resultStr;

}

/// <summary>

/// 将JSON数据转化为C#数据实体

/// </summary>

/// <param name="json">符合JSON格式的字符串</param>

/// <returns>T类型的对象</returns>

public static T JsonDeserialize<T>(string json)

{

//json 必须为 {name:"value",name:"value"} 的格式(要符合JSON格式要求)

DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));

MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(json.ToCharArray()));

T obj = (T)serializer.ReadObject(ms);

ms.Close();

return obj;

}