string a =" [{"name":"张三","age":16},{"name":"李四","age":15},{"name":"王武","age":20},{"name":"臧黄","age":13}] ";将a这个字符串,只截取大括号{}里面的!哪位高手可以帮忙解决???

解决方案 »

  1.   

    你这是json格式            JavaScriptSerializer js = new JavaScriptSerializer();            object obj = js.Deserialize<object>(reStr);反序列转换成Dictionary
      

  2.   

    解析JSON 下载newtonsoft.json.dll 下载
    项目添加引用然后解析 string jsonStr = " [{\"name\":\"张三\",\"age\":16},{\"name\":\"李四\",\"age\":15},{\"name\":\"王武\",\"age\":20},{\"name\":\"臧黄\",\"age\":13}] ";
                JArray array = JsonConvert.DeserializeObject(jsonStr) as JArray;
                foreach (JObject  o in array)
                {
                    Response.Write(string.Format("name:{0}      age:{1} ", o["name"], o["age"]));
                }
                //输出
                /*
                 name:张三 age:16 name:李四 age:15 name:王武 age:20 name:臧黄 age:13 
                 */
      

  3.   

    http://zhidao.baidu.com/question/464163275.html
    这个也是lz的吧?
      

  4.   

    这个我用过不行。。解析不了,,所以我打算把他截取了,单个的解析    我用的是wpf。
      

  5.   

     string jsonStr = " [{\"name\":\"张三\",\"age\":16},{\"name\":\"李四\",\"age\":15},{\"name\":\"王武\",\"age\":20},{\"name\":\"臧黄\",\"age\":13}] ";
                    string[] result1 = Regex.Matches(jsonStr,@"\{[^{}]+?\}").Cast<Match>().Select(a=>a.Value).ToArray();
                    /*
                      [0] "{\"name\":\"张三\",\"age\":16}" string
                    [1] "{\"name\":\"李四\",\"age\":15}" string
                    [2] "{\"name\":\"王武\",\"age\":20}" string
                    [3] "{\"name\":\"臧黄\",\"age\":13}" string                 */
                    string[] result2 = Regex.Matches(jsonStr, @"(?<=\{)[^{}]+?(?=\})").Cast<Match>().Select(a => a.Value).ToArray();
                    /*
                      [0] "\"name\":\"张三\",\"age\":16" string
                    [1] "\"name\":\"李四\",\"age\":15" string
                    [2] "\"name\":\"王武\",\"age\":20" string
                    [3] "\"name\":\"臧黄\",\"age\":13" string                 */不知道你想怎样?
      

  6.   

    应该用json解析,json解析怎么就解析不了了?
      

  7.   

    1、先 使用 split(',') 将 字符串 分解 到 一个  string[] 中。
    2、使用 indexof("{") 、inedexof("}") 获得 "{"  和  "}" 索引。
    3、使用 Substring() 获取之。
      

  8.   


    using System.Runtime.Serialization.Json;protected void Page_Load(object sender, EventArgs e)
            {
                string JsonStr = "[{Name:'苹果',Price:5.5},{Name:'橘子',Price:2.5},{Name:'柿子',Price:16}]";
                List<Product> products = new List<Product>();
                products =Json.JSONStringToList<Product>(JsonStr);
                foreach (var item in products)
                {
                    Response.Write(item.Name + ":" + item.Price + "<br />");
                }
            }
            public class Product
            {
                public string Name { get; set; }
                public double Price { get; set; }
            } public static class Json
        {        public static List<T> JSONStringToList<T>(this string JsonStr)
            {            JavaScriptSerializer Serializer = new JavaScriptSerializer();            List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);            return objs;        }        public static T Deserialize<T>(string json)
            {            T obj = Activator.CreateInstance<T>();            using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
                {                DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());                return (T)serializer.ReadObject(ms);            }        }
        }
      

  9.   

    string a =" [{"name":"张三","age":16},{"name":"李四","age":15},{"name":"王武","age":20},{"name":"臧黄","age":13}] ";大家的答案很多,应该能实现你说的。方法不外乎就那些。  1 自己的方法: 字符串截取, 这个很好弄.while 循环查找"{", 后面一个减去前面一个的位置,再减去1,就是要截取的长度。其实分割更快,按照","分割,在处理索引为0的和length-1的。 2 正则表达式匹配。
      var array=Regex.Matches(a,@"{[^}]*}").Cast<Match>().Select(t=>t.Value).ToArray();3 他们说的josn格式推荐第二个
      

  10.   

    嗯。。解决我的问题了。谢谢各位!!!!!!!!!!!用正则表达式匹配var array=Regex.Matches(a,@"{[^}]*}").Cast<Match>().Select(t=>t.Value).ToArray();截取了好了……