多条Json数据转换为泛型数据

/// <summary>
/// 单条json数据转换为实体
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="str">字符窜(格式为{a:‘‘,b:‘‘})</param>
/// <returns></returns>
private static T ConvertToEntity<T>(string str)
{
Type t = typeof(T);
object obj = Activator.CreateInstance(t);
var properties = t.GetProperties();
string m = str.Trim(‘{‘).Trim(‘}‘);
string[] arr = m.Split(‘,‘);
for (int i = 0; i < arr.Count(); i++)
{

for (int k = 0; k < properties.Count(); k++)
{
string Name = arr[i].Substring(0, arr[i].IndexOf(":"));
object Value = arr[i].Substring(arr[i].IndexOf(":") + 1);
if (properties[k].Name.Equals(Name))
{
if (properties[k].PropertyType.Equals(typeof(int)))
{
properties[k].SetValue(obj, Convert.ToInt32(Value), null);
}
if (properties[k].PropertyType.Equals(typeof(string)))
{
properties[k].SetValue(obj, Convert.ToString(Value), null);
}
if (properties[k].PropertyType.Equals(typeof(long)))
{
properties[k].SetValue(obj, Convert.ToInt64(Value), null);
}
if (properties[k].PropertyType.Equals(typeof(decimal)))
{
properties[k].SetValue(obj, Convert.ToDecimal(Value), null);
}
if (properties[k].PropertyType.Equals(typeof(double)))
{
properties[k].SetValue(obj, Convert.ToDouble(Value), null);
}
if (properties[k].PropertyType.Equals(typeof(Nullable<int>)))
{
properties[k].SetValue(obj, Convert.ToInt32(Value), null);
}
if (properties[k].PropertyType.Equals(typeof(Nullable<decimal>)))
{
properties[k].SetValue(obj, Convert.ToDecimal(Value), null);
}
if (properties[k].PropertyType.Equals(typeof(Nullable<long>)))
{
properties[k].SetValue(obj, Convert.ToInt64(Value), null);
}
if (properties[k].PropertyType.Equals(typeof(Nullable<double>)))
{
properties[k].SetValue(obj, Convert.ToDouble(Value), null);
}
if (properties[k].PropertyType.Equals(typeof(Nullable<DateTime>)))
{
properties[k].SetValue(obj, Convert.ToDateTime(Value), null);
}

}
}

}
return (T)obj;
}

/// <summary>
/// 多条Json数据转换为泛型数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="jsonArr">字符窜(格式为[{a:‘‘,b:‘‘},{a:‘‘,b:‘‘},{a:‘‘,b:‘‘}])</param>
/// <returns></returns>
public static List<T> ConvertTolist<T>(string jsonArr)
{
if (!string.IsNullOrEmpty(jsonArr) && jsonArr.StartsWith("[") && jsonArr.EndsWith("]"))
{
Type t = typeof(T);
var proPerties = t.GetProperties();
List<T> list = new List<T>();
string recive = jsonArr.Trim(‘[‘).Trim(‘]‘).Replace("‘", "").Replace("\"", "");
string[] reciveArr = recive.Replace("},{", "};{").Split(‘;‘);
foreach (var item in reciveArr)
{
T obj = ConvertToEntity<T>(item);
list.Add(obj);
}
return list;
}
return null;

}

用法: List<RainModel> RainModelList = ConvertTolist<RainModel>(resuledata);

时间: 2024-12-28 01:30:30

多条Json数据转换为泛型数据的相关文章

Json 字符串 转换为 DataTable数据集合

/// <summary> /// 将json转换为DataTable /// </summary> /// <param name="strJson">得到的json</param> /// <returns></returns> private DataTable JsonToDataTable(string strJson) { //转换json格式 strJson = strJson.Replace(&qu

YUY数据转换为RGB数据,并进行灰度化处理显示

BYTE clip255(long Value){ BYTE retValue;  if (Value > 255)  retValue = 255; else if (Value < 0)  retValue = 0; else  retValue = (BYTE)Value; return retValue;}//win7采到的数据默认YUY格式,一个像素用2位表示,这里将YUY转换为RGB格式(3个字节),便于显示,不转换会出现黑框框void YUY2_RGB2_ljh(unsigned

SQLServer之行数据转换为列数据

准备工作 创建表 1 use [test1] 2 go 3 4 create table [dbo].[student]( 5 [id] [int] identity(1,1) not null, 6 [name] [nvarchar](50) null, 7 [project] [nvarchar](50) null, 8 [score] [int] null, 9 constraint [pk_student] primary key clustered 10 ( 11 [id] asc 1

Python将JSON格式数据转换为SQL语句以便导入MySQL数据库

前文中我们把网络爬虫爬取的数据保存为JSON格式,但为了能够更方便地处理数据,我们希望把这些数据导入到MySQL数据库中.phpMyadmin可以把MySQL数据库中的数据导出为JSON格式文件,但却不能把JSON格式文件导入到MySQL数据库.为了实现这个目标,可以编写Python脚本将JSON格式数据转换为SQL语句以便导入MySQL数据库. JSON文件tencent.json部分内容: {"recruitNumber": "1", "name&qu

使用VS2013将JSON/XML数据转换为对应的数据实体

VS2013中提供了将JSON数据转换为对应的数据实体类的功能,很大程度上提高开发效率,具体转换步骤如下 1.首先我们需要将需要转换的JSO数据[复制],例如下面这段json数据: { "name": "JSON中国", "url": "http://www.json.org.cn", "page": 88, "isNonProfit": true, "address"

将Json数据转换为ADO.NET DataSet对象

Json数据转换为ADO.NET DataSet其实方法有很多,Newtonsoft.Json也提供了DataSet的Converter用以转换Json数据.但是有些情况下DataSet Converter并不管用,而且也不一定能够满足项目需要.这里介绍另一种简单有效的方法,能够方便快速地将Json数据转为ADO.NET DataSet. 设计 事实上Newtonsoft.Json已经提供了一套完整的Json数据文档结构,Newtonsoft.Json.Linq命名空间下提供了这种文档结构的对象

jquery中json数据转换为字典

首先在前台页面中的json数据为 var recipe = {}; recipe["name"] = $("#name").val(); recipe["age"] = $("#age").val(); recipe["sex"] = $("#sex").val(); recipe["medicine"] = "{'name': 'a', 'value':

[TimLinux] JavaScript AJAX接收到的数据转换为JSON格式

1. 接收数据 AJAX接收数据是通过xhr.responseText属性,这是一个属性不是一个方法,这个属性得到的数据为字符串. 2. 字符串内容 当服务器发送的是一个JsonResponse({'name':'Tim', 'sex': 'male'})这样的数据时(Django服务器),前端 xhr.responseText 属性得到的字符串值为"{'name':'Tim', 'sex':'male''}",再次强调这是一个字符串 3. 字符串转换为JSON 字符串转换为JSON,

【Lua】LWT后台用JSON与 ExtJS传递数据

要完成目录树的构建,需要前台ExtJS构筑页面,后台处理逻辑,中间由JSON传递数据. 首先搭建后台环境: 1 require "httpd" 2 require "lfs" 3 4 request, args = ... 5 6 local s = {root = { 7 text = "rootNode", 8 expanded = true, 9 children = { 10 { 11 text = 'book1', 12 leaf =