主要讲述了两种方法的转换,最后提供了格式化输出JsonString字符串。
需要引用程序集 System.Web.Extensions.dll、Newtonsoft.Json.dll
System.Web.Extensions.dll可直接在程序集中引用,Newtonsoft.Json.dll需要在NuGet中下载引用。
详细代码:
using System;
using System.IO;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Web.Script.Serialization;namespace TestAutomationUtility.Models
{/// <summary>/// <para>需要引用程序集 System.Web.Extensions.dll、Newtonsoft.Json.dll</para>/// <para>提供了两种方式转换</para>/// </summary>internal class ConvertToJsonString{/// <summary>/// 把json转集合/// </summary>/// <typeparam name="T"></typeparam>/// <param name="JsonStr"></param>/// <returns></returns>public List<T> JSONStringToList<T>(string JsonStr){JavaScriptSerializer Serializer = new JavaScriptSerializer();List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);return objs;}/// <summary>/// 把json转对象/// </summary>/// <typeparam name="T"></typeparam>/// <param name="JsonStr"></param>/// <returns></returns>public T JSONStringToEntity<T>(string JsonStr){JavaScriptSerializer Serializer = new JavaScriptSerializer();T objs = Serializer.Deserialize<T>(JsonStr);return objs;}/// <summary>/// 把对象转为json/// </summary>/// <typeparam name="T"></typeparam>/// <param name="t"></param>/// <returns></returns>public string ToString<T>(T t){JavaScriptSerializer serializer = new JavaScriptSerializer();string jsonString = serializer.Serialize(t);return jsonString;}/// <summary>/// 把list集合转为json/// </summary>/// <typeparam name="T"></typeparam>/// <param name="t"></param>/// <returns></returns>public string ToString<T>(List<T> ts){JavaScriptSerializer serializer = new JavaScriptSerializer();string jsonString = serializer.Serialize(ts);return jsonString;}/// <summary>/// object转string/// </summary>/// <param name="obj"></param>/// <returns></returns>public string ToStringObject(Object obj){string json = Newtonsoft.Json.JsonConvert.SerializeObject(obj);return json;}/// <summary>/// json转Entity/// </summary>/// <typeparam name="T"></typeparam>/// <param name="jsonString"></param>/// <returns></returns>public T StringToEntity<T>(string jsonString){T person = JsonConvert.DeserializeObject<T>(jsonString);return person;}/// <summary>/// json转List/// </summary>/// <typeparam name="T"></typeparam>/// <param name="jsonString"></param>/// <returns></returns>public IList<T> StringToEntitys<T>(string jsonString){IList<T> person = JsonConvert.DeserializeObject<IList<T>>(jsonString);return person;}/// <summary>/// 格式化输出json字符串/// </summary>/// <param name="json"></param>/// <returns></returns>private string ConvertJsonString(string json){JsonSerializer serializer = new JsonSerializer();TextReader tr = new StringReader(json);JsonTextReader jtr = new JsonTextReader(tr);object obj = serializer.Deserialize(jtr);if (obj != null){StringWriter textWriter = new StringWriter();JsonTextWriter jsonWriter = new JsonTextWriter(textWriter){Formatting = Formatting.Indented,Indentation = 4,IndentChar = ' '};serializer.Serialize(jsonWriter, obj);return textWriter.ToString();}else{return json;}}}
}