json数据反序列化C#实体

来源:互联网 发布:imax影片数据 编辑:程序博客网 时间:2024/06/05 14:35
最近的项目数据需要从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字符串);


0 0