using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using YssResources.Fun;
namespace YssCore.Fun
{
/// <summary>
/// Json对象的工具类(基于Json.net)
/// </summary>
public abstract class ClsJsonTools
{
#region BLOCK-001 声明参数
#endregion
#region BLOCK-002 功能实现
/// <summary>
/// 将JSON对象转换成Pojo
/// </summary>
/// <param name="jso">json对象</param>
/// <param name="objectType">对象Pojo的类型</param>
/// <returns>填充后的Pojo</returns>
public static object Json2Pojo(JObject jso, Type objectType)
{
实例化待填充Pojo对象
object instance = Activator.CreateInstance(objectType);
JsonSerializer serializer = new JsonSerializer();
将JSON对象填充到对象Pojo中
instance = serializer.Deserialize(new JTokenReader(jso), objectType);
return instance;
}
/// <summary>
/// 将对象转换成json串
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="bean">对象</param>
/// <returns>json串</returns>
public static string Bean2String<T>(T bean)
{
JObject jobject = new JObject();
jobject = JObject.FromObject(bean);
return jobject.ToString();
}
/// <summary>
/// 将json串转换成对象
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="jsonString">json串</param>
/// <returns>数据对象</returns>
public static T String2Bean<T>(string jsonString)
{
return JObject.Parse(jsonString).ToObject<T>();
}
/// <summary>
/// 将json串转换为对象集合
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="jsonString">数据</param>
/// <returns>对象集合</returns>
public static List<T> String2BeanList<T>(string jsonString)
{
return JsonConvert.DeserializeObject<List<T>>(jsonString);
}
}
}