asp.net 如何转化json数据为对象
{date:'2012-04-12',list:[{uid:'11111111',amount:'1000',game_name:'龙将'},{uid:'2222222'...
{date:'2012-04-12',list:[{uid:'11111111',amount:'1000',game_name:'龙将'},{uid:'2222222',amount:'2000',game_name:'火影世界'}]}
我需要把这些充值数据 插入到数据库 展开
我需要把这些充值数据 插入到数据库 展开
展开全部
下载这个Newtonsoft.Json,很软件就可以转换了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-03-29
展开全部
有json 反序列化的类,但是先要知道类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-03-29
展开全部
有json 反序列化的类,但是先要知道类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-03-29
展开全部
///<summary>
///这个方法用来初始化一个实体,将实体的数字型类型设置为-99999,字符串设置为
///null,日期类型设置为newDateTime()
///</summary>
///<typeparamname="T">需要处理的类型</typeparam>
///<paramname="entity">需要初始化的对象</param>
///<returns>返回处理完毕后的对象</returns>
publicstaticTInitialize<T>(Tentity)whereT:class
{
PropertyInfo[]props=entity.GetType().GetProperties();
foreach(PropertyInfopinprops)
{
if(p!=null)
{
Typet=p.PropertyType;
//不处理布尔类型
//if(!t.IsValueType&&t==typeof(bool))
//{
//continue;
//}if(t==typeof(int)||t==typeof(double)||t==typeof(float)||t==typeof(int?)||t==typeof(double?)||t==typeof(float?))
{
p.SetValue(entity,-99999,null);
}if(t==typeof(decimal)||t==typeof(decimal?))
{
p.SetValue(entity,Convert.ToDecimal(-99999),null);
}
if(t==typeof(string))
p.SetValue(entity,null,null);
if(t==typeof(DateTime?)||t==typeof(DateTime))
p.SetValue(entity,newDateTime(),null);}
}
returnentity;
}
///<summary>
///这个方法是根据传入的IEnumerable《T》的集合类型,
///转换为json对象集合字符串
///</summary>
///<typeparamname="T">需要转换成的类型</typeparam>
///<paramname="list">待转换的数据集合</param>
///<returns>返回json格式字符串</returns>
publicstaticstringConvertListToJson<T>(IEnumerable<T>list)whereT:new()
{
intstart1;
Tobj=newT();
System.Text.StringBuildersb=newStringBuilder("[");
Typetype=obj.GetType();//得到T的类型
PropertyInfo[]props;//=type.GetProperties(BindingFlags.Public|BindingFlags.Instance);
foreach(variteminlist)
{
//出了循环之后,需要将这个字符串的最后一个逗号去掉
sb.Append(EntityHelper.ConvertObjectToJson<T>(item));
sb.Append(",");
}
//整个集合处理完毕之后,需要将最后一个,去除
start1=sb.ToString().LastIndexOf(",");
if(start1!=-1)
sb.Remove(start1,1);//去除最后一个,
sb.Append("]");
returnsb.ToString();}
///<summary>
///这个方法是根据传入的IEnumerable《T》的集合类型,
///转换为EasyUIDataGridjson对象集合字符串
///对应的EasyUi版本为1.2.3
///</summary>
///<typeparamname="T">需要转换成的类型</typeparam>
///<paramname="list">待转换的数据集合</param>
///<returns>返回json格式字符串</returns>
///
[Obsolete("这个方法不建议使用,方法已过期",true)]
publicstaticstringConvertListToEasyUIDataGridJson<T>(IEnumerable<T>list,intrecordcount)whereT:new()
{
intstart1;
Tobj=newT();
System.Text.StringBuildersb=newStringBuilder("[");
Typetype=obj.GetType();//得到T的类型
PropertyInfo[]props;//=type.GetProperties(BindingFlags.Public|BindingFlags.Instance);
intcount=0;//计数器
foreach(Ttinlist)
{
count++;
props=t.GetType().GetProperties();//得到这个对象的所有属性
ColumnAttributecolumnAttr;
object[]objs;
//开始遍历这个对象的所有属性
sb.Append("{");
foreach(PropertyInfopropinprops)
{
objs=prop.GetCustomAttributes(typeof(ColumnAttribute),false);//得到自定义特性
stringcolumnname="";//定义变量,表示json对象中某个属性名
objectvalue="";//定义变量,表示json对象中某个属性值
if(objs.Count()>0)
{
columnAttr=objs[0]asColumnAttribute;//得到自定义columnAttribute对象
//如果取到值了
if(columnAttr!=null)
{
columnname=columnAttr.Storage.Substring(1);//得到属性名
value=prop.GetValue(t,null);//获得这个属性值
if(value==null)
{
sb.Append("\""+columnname+"\""+":null,");
}
else
//if(valueisstring||valueisDateTime)
//{
{
stringstr=value.ToString();str=str.Replace("\r\n","\\r\\n").Replace("\'","‘").Replace("\n","\\n").Replace("\r","\\r");
sb.Append("\""+columnname+"\""+":\""+str+"\",");
//}
//else
//{
//sb.Append(columnname+":"+value+",");
//}
}}
}
}
//出了循环之后,需要将这个字符串的最后一个逗号去掉
start1=sb.ToString().LastIndexOf(",");
if(start1!=-1)
sb.Remove(start1,1);//去除最后一个,
sb.Append("},");
}
//整个集合处理完毕之后,需要将最后一个,去除
start1=sb.ToString().LastIndexOf(",");
if(start1!=-1)
sb.Remove(start1,1);//去除最后一个,
sb.Append("]");
//returnsb.ToString();
stringhead=string.Format("{0}\"total\":\"{1}\",\"rows\":","{",recordcount);
stringjson=head+sb.ToString()+"}";
returnjson;
}
///<summary>
///将一个对象转换为json格式字符串
///</summary>
///<typeparamname="T"></typeparam>
///<paramname="target"></param>
///<returns></returns>
publicstaticstringConvertObjectToJson<T>(objecttarget)whereT:new()
{
Typetype=target.GetType();//得到类型varprops=target.GetType().GetProperties();//得到这个对象的所有属性
ColumnAttributecolumnAttr;
object[]objs;
//开始遍历这个对象的所有属性
System.Text.StringBuildersb=newStringBuilder("");
sb.Append("{");
object[]fks;
foreach(PropertyInfopropinprops)
{
objs=prop.GetCustomAttributes(typeof(ColumnAttribute),false);//得到自定义特性
fks=prop.GetCustomAttributes(typeof(AssociationAttribute),true);
stringcolumnname="";//定义变量,表示json对象中某个属性名
objectvalue="";//定义变量,表示json对象中某个属性值if(fks.Count()>0)
{
//如果是外键的话
//这里要考虑是否有外键对象,如果是外键对象,则构造外键对象
//出于性能的考虑,只遍历第一层外键
value=prop.GetValue(target,null);
AssociationAttributefk=fks[0]asSystem.Data.Linq.Mapping.AssociationAttribute;
if(fk.IsForeignKey==true)
{
columnname=fk.Storage.Substring(1);//得到属性名
if(value!=null)//如果有外键对象存在,则构造外键对象
{
stringinnerjson=ConvertObjectToJsonNoForeignKey<T>(value);
sb.Append("\""+columnname+"\""+":"+innerjson+",");
}
else
{
sb.Append("\""+columnname+"\""+":null,");}}
}if(objs.Count()>0)
{
columnAttr=objs[0]asColumnAttribute;//得到自定义columnAttribute对象
//如果取到值了
if(columnAttr!=null)
{
columnname=columnAttr.Storage.Substring(1);//得到属性名
value=prop.GetValue(target,null);//获得这个属性值
if(value==null)
{
sb.Append("\""+columnname+"\""+":null,");
}
else
if(valueisstring||valueisDateTime)
{
stringstr=value.ToString();
str=str.Replace("\r\n","\\r\\n").Replace("\'","‘").Replace("\n","\\n").Replace("\r","\\r").Replace("\"","“");
sb.Append("\""+columnname+"\""+":\""+str+"\",");
}
else
{sb.Append("\""+columnname+"\""+":"+value+",");
}
}
}
}
//出了循环之后,需要将这个字符串的最后一个逗号去掉
intstart1=sb.ToString().LastIndexOf(",");
if(start1!=-1)
sb.Remove(start1,1);//去除最后一个,
sb.Append("}");
returnsb.ToString();} privatestaticstringConvertObjectToJsonNoForeignKey<T>(objecttarget)whereT:new()
{
//Typetype=target.GetType();//得到类型varprops=target.GetType().GetProperties();//得到这个对象的所有属性
ColumnAttributecolumnAttr;
object[]objs;
//开始遍历这个对象的所有属性
System.Text.StringBuildersb=newStringBuilder("");
sb.Append("{");
foreach(PropertyInfopropinprops)
{
objs=prop.GetCustomAttributes(typeof(ColumnAttribute),false);//得到自定义特性
stringcolumnname="";//定义变量,表示json对象中某个属性名
objectvalue="";//定义变量,表示json对象中某个属性值
if(objs.Count()>0)
{
columnAttr=objs[0]asColumnAttribute;//得到自定义columnAttribute对象
//如果取到值了
if(columnAttr!=null)
{
columnname=columnAttr.Storage.Substring(1);//得到属性名
value=prop.GetValue(target,null);//获得这个属性值
if(value==null)
{
sb.Append("\""+columnname+"\""+":null,");
}
else
if(valueisstring||valueisDateTime)
{
stringstr=value.ToString();
str=str.Replace("\r\n","\\r\\n").Replace("\'","‘").Replace("\n","\\n").Replace("\r","\\r").Replace("\"","“");
sb.Append("\""+columnname+"\""+":\""+str+"\",");
}
else
{sb.Append("\""+columnname+"\""+":"+value+",");
}
}
}
}
//出了循环之后,需要将这个字符串的最后一个逗号去掉
intstart1=sb.ToString().LastIndexOf(",");
if(start1!=-1)
sb.Remove(start1,1);//去除最后一个,
sb.Append("}");
returnsb.ToString();}
///<summary>
///这个方法是根据传入的datatable转换为json对象字符串
///</summary>
///<paramname="dt"></param>
///<returns></returns>
publicstaticstringConvertDataTableToJSON(DataTabledt)
{
//return"{[Id:2,LoginId:'jingjing',LoginPwd:'jingjing',Name:'JingJing',Address:'Guangzhou',Phone:'88888888',Mail:'jingjing@sina.com',UserRoleId:1,UserStateId:1,UserScore:890]";
//return"[{id:1,name:'aa'},{id:2,name:'bb'},{id:3,name:'cc'}]";
DataColumn[]columns;
System.Text.StringBuildersb=newSystem.Text.StringBuilder("[");
foreach(DataRowrowindt.Rows)
{
sb.Append("{");
foreach(DataColumncolindt.Columns)
{if(row.IsNull(col)!=true)
{
if(col.DataType!=typeof(int)&&col.DataType!=typeof(double)&&col.DataType!=typeof(decimal)&&col.DataType!=typeof(float))
sb.Append("\""+col.ColumnName+"\""+":\""+row[col.ColumnName].ToString()+"\"");
else
{
stringstr=row[col.ColumnName].ToString();
str=str.Replace("\r\n","\\r\\n").Replace("\'","‘").Replace("\n","\\n").Replace("\r","\\r");
sb.Append("\""+col.ColumnName+"\""+":"+str);
}
}
else
sb.Append(col.ColumnName+":null");
sb.Append(",");
}
intstart=sb.ToString().LastIndexOf(",");
sb.Remove(start,1);//去除最后一个,
sb.Append("},");
}
intstart1=sb.ToString().LastIndexOf(",");
if(start1!=-1)
sb.Remove(start1,1);//去除最后一个,sb.Append("]");
returnsb.ToString();} }
///这个方法用来初始化一个实体,将实体的数字型类型设置为-99999,字符串设置为
///null,日期类型设置为newDateTime()
///</summary>
///<typeparamname="T">需要处理的类型</typeparam>
///<paramname="entity">需要初始化的对象</param>
///<returns>返回处理完毕后的对象</returns>
publicstaticTInitialize<T>(Tentity)whereT:class
{
PropertyInfo[]props=entity.GetType().GetProperties();
foreach(PropertyInfopinprops)
{
if(p!=null)
{
Typet=p.PropertyType;
//不处理布尔类型
//if(!t.IsValueType&&t==typeof(bool))
//{
//continue;
//}if(t==typeof(int)||t==typeof(double)||t==typeof(float)||t==typeof(int?)||t==typeof(double?)||t==typeof(float?))
{
p.SetValue(entity,-99999,null);
}if(t==typeof(decimal)||t==typeof(decimal?))
{
p.SetValue(entity,Convert.ToDecimal(-99999),null);
}
if(t==typeof(string))
p.SetValue(entity,null,null);
if(t==typeof(DateTime?)||t==typeof(DateTime))
p.SetValue(entity,newDateTime(),null);}
}
returnentity;
}
///<summary>
///这个方法是根据传入的IEnumerable《T》的集合类型,
///转换为json对象集合字符串
///</summary>
///<typeparamname="T">需要转换成的类型</typeparam>
///<paramname="list">待转换的数据集合</param>
///<returns>返回json格式字符串</returns>
publicstaticstringConvertListToJson<T>(IEnumerable<T>list)whereT:new()
{
intstart1;
Tobj=newT();
System.Text.StringBuildersb=newStringBuilder("[");
Typetype=obj.GetType();//得到T的类型
PropertyInfo[]props;//=type.GetProperties(BindingFlags.Public|BindingFlags.Instance);
foreach(variteminlist)
{
//出了循环之后,需要将这个字符串的最后一个逗号去掉
sb.Append(EntityHelper.ConvertObjectToJson<T>(item));
sb.Append(",");
}
//整个集合处理完毕之后,需要将最后一个,去除
start1=sb.ToString().LastIndexOf(",");
if(start1!=-1)
sb.Remove(start1,1);//去除最后一个,
sb.Append("]");
returnsb.ToString();}
///<summary>
///这个方法是根据传入的IEnumerable《T》的集合类型,
///转换为EasyUIDataGridjson对象集合字符串
///对应的EasyUi版本为1.2.3
///</summary>
///<typeparamname="T">需要转换成的类型</typeparam>
///<paramname="list">待转换的数据集合</param>
///<returns>返回json格式字符串</returns>
///
[Obsolete("这个方法不建议使用,方法已过期",true)]
publicstaticstringConvertListToEasyUIDataGridJson<T>(IEnumerable<T>list,intrecordcount)whereT:new()
{
intstart1;
Tobj=newT();
System.Text.StringBuildersb=newStringBuilder("[");
Typetype=obj.GetType();//得到T的类型
PropertyInfo[]props;//=type.GetProperties(BindingFlags.Public|BindingFlags.Instance);
intcount=0;//计数器
foreach(Ttinlist)
{
count++;
props=t.GetType().GetProperties();//得到这个对象的所有属性
ColumnAttributecolumnAttr;
object[]objs;
//开始遍历这个对象的所有属性
sb.Append("{");
foreach(PropertyInfopropinprops)
{
objs=prop.GetCustomAttributes(typeof(ColumnAttribute),false);//得到自定义特性
stringcolumnname="";//定义变量,表示json对象中某个属性名
objectvalue="";//定义变量,表示json对象中某个属性值
if(objs.Count()>0)
{
columnAttr=objs[0]asColumnAttribute;//得到自定义columnAttribute对象
//如果取到值了
if(columnAttr!=null)
{
columnname=columnAttr.Storage.Substring(1);//得到属性名
value=prop.GetValue(t,null);//获得这个属性值
if(value==null)
{
sb.Append("\""+columnname+"\""+":null,");
}
else
//if(valueisstring||valueisDateTime)
//{
{
stringstr=value.ToString();str=str.Replace("\r\n","\\r\\n").Replace("\'","‘").Replace("\n","\\n").Replace("\r","\\r");
sb.Append("\""+columnname+"\""+":\""+str+"\",");
//}
//else
//{
//sb.Append(columnname+":"+value+",");
//}
}}
}
}
//出了循环之后,需要将这个字符串的最后一个逗号去掉
start1=sb.ToString().LastIndexOf(",");
if(start1!=-1)
sb.Remove(start1,1);//去除最后一个,
sb.Append("},");
}
//整个集合处理完毕之后,需要将最后一个,去除
start1=sb.ToString().LastIndexOf(",");
if(start1!=-1)
sb.Remove(start1,1);//去除最后一个,
sb.Append("]");
//returnsb.ToString();
stringhead=string.Format("{0}\"total\":\"{1}\",\"rows\":","{",recordcount);
stringjson=head+sb.ToString()+"}";
returnjson;
}
///<summary>
///将一个对象转换为json格式字符串
///</summary>
///<typeparamname="T"></typeparam>
///<paramname="target"></param>
///<returns></returns>
publicstaticstringConvertObjectToJson<T>(objecttarget)whereT:new()
{
Typetype=target.GetType();//得到类型varprops=target.GetType().GetProperties();//得到这个对象的所有属性
ColumnAttributecolumnAttr;
object[]objs;
//开始遍历这个对象的所有属性
System.Text.StringBuildersb=newStringBuilder("");
sb.Append("{");
object[]fks;
foreach(PropertyInfopropinprops)
{
objs=prop.GetCustomAttributes(typeof(ColumnAttribute),false);//得到自定义特性
fks=prop.GetCustomAttributes(typeof(AssociationAttribute),true);
stringcolumnname="";//定义变量,表示json对象中某个属性名
objectvalue="";//定义变量,表示json对象中某个属性值if(fks.Count()>0)
{
//如果是外键的话
//这里要考虑是否有外键对象,如果是外键对象,则构造外键对象
//出于性能的考虑,只遍历第一层外键
value=prop.GetValue(target,null);
AssociationAttributefk=fks[0]asSystem.Data.Linq.Mapping.AssociationAttribute;
if(fk.IsForeignKey==true)
{
columnname=fk.Storage.Substring(1);//得到属性名
if(value!=null)//如果有外键对象存在,则构造外键对象
{
stringinnerjson=ConvertObjectToJsonNoForeignKey<T>(value);
sb.Append("\""+columnname+"\""+":"+innerjson+",");
}
else
{
sb.Append("\""+columnname+"\""+":null,");}}
}if(objs.Count()>0)
{
columnAttr=objs[0]asColumnAttribute;//得到自定义columnAttribute对象
//如果取到值了
if(columnAttr!=null)
{
columnname=columnAttr.Storage.Substring(1);//得到属性名
value=prop.GetValue(target,null);//获得这个属性值
if(value==null)
{
sb.Append("\""+columnname+"\""+":null,");
}
else
if(valueisstring||valueisDateTime)
{
stringstr=value.ToString();
str=str.Replace("\r\n","\\r\\n").Replace("\'","‘").Replace("\n","\\n").Replace("\r","\\r").Replace("\"","“");
sb.Append("\""+columnname+"\""+":\""+str+"\",");
}
else
{sb.Append("\""+columnname+"\""+":"+value+",");
}
}
}
}
//出了循环之后,需要将这个字符串的最后一个逗号去掉
intstart1=sb.ToString().LastIndexOf(",");
if(start1!=-1)
sb.Remove(start1,1);//去除最后一个,
sb.Append("}");
returnsb.ToString();} privatestaticstringConvertObjectToJsonNoForeignKey<T>(objecttarget)whereT:new()
{
//Typetype=target.GetType();//得到类型varprops=target.GetType().GetProperties();//得到这个对象的所有属性
ColumnAttributecolumnAttr;
object[]objs;
//开始遍历这个对象的所有属性
System.Text.StringBuildersb=newStringBuilder("");
sb.Append("{");
foreach(PropertyInfopropinprops)
{
objs=prop.GetCustomAttributes(typeof(ColumnAttribute),false);//得到自定义特性
stringcolumnname="";//定义变量,表示json对象中某个属性名
objectvalue="";//定义变量,表示json对象中某个属性值
if(objs.Count()>0)
{
columnAttr=objs[0]asColumnAttribute;//得到自定义columnAttribute对象
//如果取到值了
if(columnAttr!=null)
{
columnname=columnAttr.Storage.Substring(1);//得到属性名
value=prop.GetValue(target,null);//获得这个属性值
if(value==null)
{
sb.Append("\""+columnname+"\""+":null,");
}
else
if(valueisstring||valueisDateTime)
{
stringstr=value.ToString();
str=str.Replace("\r\n","\\r\\n").Replace("\'","‘").Replace("\n","\\n").Replace("\r","\\r").Replace("\"","“");
sb.Append("\""+columnname+"\""+":\""+str+"\",");
}
else
{sb.Append("\""+columnname+"\""+":"+value+",");
}
}
}
}
//出了循环之后,需要将这个字符串的最后一个逗号去掉
intstart1=sb.ToString().LastIndexOf(",");
if(start1!=-1)
sb.Remove(start1,1);//去除最后一个,
sb.Append("}");
returnsb.ToString();}
///<summary>
///这个方法是根据传入的datatable转换为json对象字符串
///</summary>
///<paramname="dt"></param>
///<returns></returns>
publicstaticstringConvertDataTableToJSON(DataTabledt)
{
//return"{[Id:2,LoginId:'jingjing',LoginPwd:'jingjing',Name:'JingJing',Address:'Guangzhou',Phone:'88888888',Mail:'jingjing@sina.com',UserRoleId:1,UserStateId:1,UserScore:890]";
//return"[{id:1,name:'aa'},{id:2,name:'bb'},{id:3,name:'cc'}]";
DataColumn[]columns;
System.Text.StringBuildersb=newSystem.Text.StringBuilder("[");
foreach(DataRowrowindt.Rows)
{
sb.Append("{");
foreach(DataColumncolindt.Columns)
{if(row.IsNull(col)!=true)
{
if(col.DataType!=typeof(int)&&col.DataType!=typeof(double)&&col.DataType!=typeof(decimal)&&col.DataType!=typeof(float))
sb.Append("\""+col.ColumnName+"\""+":\""+row[col.ColumnName].ToString()+"\"");
else
{
stringstr=row[col.ColumnName].ToString();
str=str.Replace("\r\n","\\r\\n").Replace("\'","‘").Replace("\n","\\n").Replace("\r","\\r");
sb.Append("\""+col.ColumnName+"\""+":"+str);
}
}
else
sb.Append(col.ColumnName+":null");
sb.Append(",");
}
intstart=sb.ToString().LastIndexOf(",");
sb.Remove(start,1);//去除最后一个,
sb.Append("},");
}
intstart1=sb.ToString().LastIndexOf(",");
if(start1!=-1)
sb.Remove(start1,1);//去除最后一个,sb.Append("]");
returnsb.ToString();} }
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-03-29
展开全部
您好 曾经写了个 js方法就是 将json 转化为对象的 需要 给我邮箱
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询