操作json格式数据需要 using Newtonsoft.Json;
public class JsonHelper
{
/// <summary>
/// 解析JSON字符串生成对象实体
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="json">json字符串</param>
/// <returns>对象实体</returns>
public static T GetObject<T>(string json) where T : class
{
if (string.IsNullOrEmpty(json))
{
return null;
}
var serializer = new JsonSerializer();
var sr = new StringReader(json);
var o = serializer.Deserialize(new JsonTextReader(sr), typeof(T));
var t = o as T;
return t;
}
/// <summary>
/// 将对象序列化为JSON格式
/// </summary>
/// <param name="obj">对象</param>
/// <returns>json字符串</returns>
public static string GetJson(object obj)
{
if (obj == null)
return "";
DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());
using (MemoryStream stream = new MemoryStream())
{
json.WriteObject(stream, obj);
string szJson = Encoding.UTF8.GetString(stream.ToArray());
return szJson;
}
}
}
class Program
{
static void Main(string[] args)
{
List<FormData> datas = new List<FormData>
{ new FormData { TagID="1", TagValue="测试1" },
new FormData { TagID="2", TagValue="测试2"},
new FormData {TagID="3", TagValue="测试3"},
new FormData {TagID="4", TagValue="测试4"}
};
string json = "[{\"TagID\":\"1\",\"TagValue\":\"测试1\"},{\"TagID\":\"2\",\"TagValue\":\"测试2\"},{\"TagID\":\"3\",\"TagValue\":\"测试3\"},{\"TagID\":\"4\",\"TagValue\":\"测试4\"}]";
//方法1:
//json格式转实体类(反序列化)
datas = JsonHelper.GetObject<List<FormData>>(json);
//实体类转json格式(序列化)
Console.WriteLine(JsonHelper.GetJson(datas));
//方法2:
//json格式转实体类(反序列化)
datas = JsonConvert.DeserializeObject<List<FormData>>(json);
//实体类转json格式(序列化)
Console.WriteLine(JsonConvert.SerializeObject(datas));
}
}
public class FormData
{
public string TagID { get; set; }
public string TagValue { get; set; }
}