我有这个字符串:[{"Weight":70,"CustomerId":45},{"Weight":30,"CustomerId":733}]
请注意,引号是此字符串的一部分
我需要提取数字' weight'和' customerId'分别。
我尝试这样做是为了减肥:
MatchCollection Weightmatches = Regex.Matches(r["Formula"].ToString(), @"""Weight"":(\d+),");
(此字符串上可能有更多的重量或客户编号)
但我似乎无法理解如何单独隔离数字。
请帮助!!
答案 0 :(得分:1)
要正确解析JSON,建议使用JSON解析器。 JSON.NET提供了一个,只需将其安装为NuGet包并使用以下代码:
var json_data = "[{\"Weight\":70,\"CustomerId\":45},{\"Weight\":30,\"CustomerId\":733}]";
dynamic parsedObject = Newtonsoft.Json.JsonConvert.DeserializeObject(json_data);
var results = new List<KeyValuePair<int, int>>();
foreach (dynamic entry in parsedObject)
{
if (entry.Weight != null && entry.CustomerId != null)
results.Add(new KeyValuePair<int, int>(int.Parse(entry.Weight.ToString()), int.Parse(entry.CustomerId.ToString())));
}
输出:
答案 1 :(得分:0)
使用JSON
解析器是正确的答案。但我想你可以做一个与此类似的正则表达式搜索:
(?:["][^"]+["] : (\d+))
或者如果你想捕捉文字:
(?:["]([^"]+)["] : (\d+))