最近的项目数据需要从ERP中读取,而ERP使用java开发的,使用mysql数据库。手上的B2C商城是用.NET,使用mssql数据库。B2C需要数据时会通过java端提供的接口提取数据,返回来的是json格式的数据,如
调用方法:
{"result":"{"FOutSizes":"","BdCategoryByFCertifyTypeId":null,"FOtherAmount":0,"FIntroduction":""}","status":0,"msg":"执行成功."}
,B2C端需要转成C#类才能使用这些数据。
用到的工具:JsonCSharpClassGenerator
反序列化:
public static T JsonDeserialization<T>(string strJson)
{
//反序列化成对象
JObject objs = JsonConvert.DeserializeObject<JObject>(strJson);
if (objs["status"].ToString().Trim() == "0")
{
//提取数据
String array = objs["result"].ToString();
T obj = Activator.CreateInstance<T>();
if (array != "")
{
using (System.IO.MemoryStream ms =
new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(array)))
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer =
new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T));
return (T)serializer.ReadObject(ms);
}
}
else return default(T);
}
else return default(T);
//
}
调用方法:
var _data = JsonDeserialization<工具生成的实体类或是List>(实体对应的json字符串);