日期:2014-05-18 浏览次数:20919 次
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 */
------解决方案--------------------
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格式
推荐第二个