字符串 data="[{id:"1",name:'a'},{id:"2",name:'b'},{id:"3",name:'c'}]"
在C#中如何将字符串转换为数组将其值分个读出。如:d[0].id="1" d[0].name="a"
或者有没有其它更好的办法?
非常感谢!

解决方案 »

  1.   


    public class IdName
        {
            public int m_nID        = 0;
            public string m_strName = "";        /// <summary>
            /// 
            /// </summary>
            /// <param name="nID"></param>
            /// <param name="strName"></param>
            public IdName(int nID, string strName)
            {
                this.m_nID = nID;
                this.m_strName = strName;
            }
        }
    string str ="[{id:\"1\",name:'a'},{id:\"2\",name:'b'},{id:\"3\",name:'c'}]";            List<IdName> idname = new List<IdName>();
                str = str.Replace("[","").Replace("]","").Replace("{","").Replace("}","").Replace("\"","").Replace("'","");
                string[] strItem = str.Split(new char[] { ',' });
                for (int i = 0; i < strItem.Length; i+=2)
                {
                    idname.Add(new IdName(Convert.ToInt32(strItem[i].Substring(3)),strItem[i+1].Substring(5)));
                }
                // 输出效果
                int n1 = idname[0].m_nID;       // 1
                string s1 = idname[0].m_strName;// a            int n2 = idname[1].m_nID;       // 2
                string s2 = idname[1].m_strName;// b
    我写的简单,自己添加容错检查
      

  2.   

    Try : 使用.NET Framwork3.5自带的System.Runtime.Serialization.Json即可很好的完成JSON的解析。
    http://www.cnblogs.com/CodingPerfectWorld/archive/2010/08/30/1812628.html
    http://space.itpub.net/12639172/viewspace-503464
      

  3.   

    如是2。0的可以下载个Newtonsoft.Json.dll
            string data="[{id:\"1\",name:'a'},{id:\"2\",name:'b'},{id:\"3\",name:'c'}]";
            JavaScriptArray array = (JavaScriptArray)JavaScriptConvert.DeserializeObject(data);
            for(int i=0;i<array.Count;i++)
            {
                JavaScriptObject obj = (JavaScriptObject)array[i];
                Response.Write(obj["id"] + "==" + obj["name"] + "<br/>");
            }
    /*
    1==a
    2==b
    3==c
    */
      

  4.   


    //3.0以上
            string data = "[{id:\"1\",name:'a'},{id:\"2\",name:'b'},{id:\"3\",name:'c'}]";
            JavaScriptSerializer json = new JavaScriptSerializer();
            List<Data> list = json.Deserialize<List<Data>>(data);
            foreach (Data d in list)
                Response.Write(d.ID + "==" + d.Name + "<br/>");    public class Data
        {
            public string ID;
            public string Name;
        }
      

  5.   

    System.Runtime.Serialization.Json json解析。当然这个结构简单,分析字符串解析也可以接受。