c# 将 json 数据转换成 List<T> 怎么转换,json 数据格式如下图:

如题所述

        /// <summary>
        /// JSON格式数组转化为对应的List<T>
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="JsonStr">JSON格式数组</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<DBTD_SHARE> TD_Share = new List<DBTD_SHARE>();
        TD_Share = JSONStringToList<DBTD_SHARE>(JsonStr);

你构造一个类 里面有carLengthMin等3个成员 

我这里是DBTD_SHARE 

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-01-21
public class Model
{
public int Count { set; get; }
public List<Data> Data { set; get; }
}

public class Data
{
public string carLengthWin { set; get; }
public string carAxleRequire { set; get; }
public string tradeTelephoneNumber { set; get; }
}
然后使用JavaScriptSerializer的Deserialize方法反序列化,参数是json本回答被提问者采纳
第2个回答  2013-10-15
var json=new JavaScriptSerializer().Deserialize<T>(jsonString);

如果这里没有对映的实体类,那么这里的T可以用Dictionary<string,object> 和dynamic代替。。哪种是用看你自己

第3个回答  2013-10-15
引用System.ServiceModel.Web.dll
引用System.Runtime.Serialization.dll

private void Form1_Load(object sender, EventArgs e)
{
string _JsonText = System.IO.File.ReadAllText(@"C:\2.TXT");

List<Test> _Test = new List<Test>();

DataContractJsonSerializer _Json = new DataContractJsonSerializer(_Test.GetType());
byte[] _Using = System.Text.Encoding.UTF8.GetBytes(_JsonText);
System.IO.MemoryStream _MemoryStream = new System.IO.MemoryStream(_Using);
_MemoryStream.Position = 0;

_Test =(List<Test>)_Json.ReadObject(_MemoryStream);

}

public class Test
{
public int cId = 0;
public string cName = "";
public int amount = 0;
public string price = "";
}

你根据你自给的东西修改下吧
第4个回答  2013-10-15
你得构造一个和这个Json结构一样的类。
然后用JavaScriptSerializer类的Deserialize方法反序列化。