现在公司做接口经常性会碰到接收json传输,但是简单的Json传输只要作一个简单的反序列化就行,其实也就是一句代码
/// <summary>
/// 据json字符串返回对应对象
/// </summary>
/// <typeparam name="T">json字符串对应的对象</typeparam>
/// <param name="strJson">json字符串</param>
/// <returns>转换后的对象</returns>
private T GetResult<T>(string strJson)
{
return (T)(new DataContractJsonSerializer(typeof(T))).ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(strJson)));
}
但是有时候会碰到Json数组,比如[{\"Age\":28,\"Name\":\"张三\"},{\"Age\":25,\"Name\":\"李四\"}],这时候就是要做数组的反序列化了,简单来说其实就是把Json变成list
/// <summary> /// 根据json数据返回相应对象 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="JsonStr"></param> /// <returns></returns> public static List<T> JSONStringToList<T>(string JsonStr) { JavaScriptSerializer Serializer = new JavaScriptSerializer(); //设置转化JSON格式时字段长度 List<T> objs = Serializer.Deserialize<List<T>>(JsonStr); return objs; }
然后我们在去声明一个list对象去获取里面的值
List<OrderBackResult> TD_Share = new List<OrderBackResult>(); TD_Share = JSONStringToList<OrderBackResult>(strJson);
最后除了对这个值作一个判断以外,利用foreach去读取里面的值就好了
浙公网安备 33010602011771号