现在公司做接口经常性会碰到接收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去读取里面的值就好了