C#截取字符串 string a =" [{"name":"张三","age":16},{"name":"李四","age":15},{"name":"王武","age":20},{"name":"臧黄","age":13}] ";将a这个字符串,只截取大括号{}里面的!哪位高手可以帮忙解决??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你这是json格式 JavaScriptSerializer js = new JavaScriptSerializer(); object obj = js.Deserialize<object>(reStr);反序列转换成Dictionary 解析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 */ http://zhidao.baidu.com/question/464163275.html这个也是lz的吧? 这个我用过不行。。解析不了,,所以我打算把他截取了,单个的解析 我用的是wpf。 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 */不知道你想怎样? 应该用json解析,json解析怎么就解析不了了? 1、先 使用 split(',') 将 字符串 分解 到 一个 string[] 中。2、使用 indexof("{") 、inedexof("}") 获得 "{" 和 "}" 索引。3、使用 Substring() 获取之。 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); } } } 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格式推荐第二个 嗯。。解决我的问题了。谢谢各位!!!!!!!!!!!用正则表达式匹配var array=Regex.Matches(a,@"{[^}]*}").Cast<Match>().Select(t=>t.Value).ToArray();截取了好了…… c#:约瑟夫环问题 关于TcpListener的问题 这段代码计算岁数怎么多出来一岁? 平台调用,出现 System.AccessViolationException 为什么txt无法添加 关于XMPP协议 C#如何应用程序一打开是就显示在托盘二不显示在状态栏中 一个小问题 vs2005调试程序出现错误 C# 使用UPDATE 更新SQL数据库数据,中文会出现??的情况,是怎么回事? 求帮助 winform 求解如何理解委托?
项目添加引用然后解析 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
*/
这个也是lz的吧?
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 */不知道你想怎样?
2、使用 indexof("{") 、inedexof("}") 获得 "{" 和 "}" 索引。
3、使用 Substring() 获取之。
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); } }
}
var array=Regex.Matches(a,@"{[^}]*}").Cast<Match>().Select(t=>t.Value).ToArray();3 他们说的josn格式推荐第二个