提取字符串的一部分是一个常见问题,但此处的字符串内容例如'“ main \”:{\“ temp \”:'是重复的:
string test = "{\"cod\":\"200\",\"message\":0,\"cnt\":40,\"list\":[{\"dt\":1576810800,\"main\":{\"temp\":288.19,\"feels_like\":284.44,\"temp_min\":288.19,\"temp_max\":291.53,\"{\"dt\":1576821600,\"main\":{ \"temp\":283.97,\"feels_like\":281.56,\"temp_min\":283.97,\"temp_max\":286.47,\"pressure\":1007,\"sea_level\":1007,\"grnd_level\":997,\"humidity\":93,\"temp_kf\":-2.5},\"weather\":[{\"id\":501,\"main\":\"Rain\",\"description\":\"moderate rai\",\"icon\":\"10d\"}],\"clouds\":{\"all\":90},\"wind\"";
使用中
string s = test.Substring(test.IndexOf("\"main\":{\"temp\":") + 15);
我知道
288.19,"feels_like":284.44,,"temp_min":288.19,"temp_max":291.53,"{"dt":157682160
0,"main":{ "temp":283.97,"feels_like":281.56,"temp_min":283.97,"temp_max":286.47
,"pressure":1007,"sea_level":1007,"grnd_level":997,"humidity":93,"temp_kf":-2.5}
,"weather":[{"id":501,"main":"Rain","description":"moderate rain","icon":"10d"}],
"clouds":{"all":90},"wind"
而不是
288.19
任何提示,什么命令都可以帮助您?应该是可以适应'“ temp_max”'或'“ pressure”'的东西。
欢呼声
使用中
var regexGroups = Regex.Matches(test, "\"main\" ?: ?{ ?\"temp\" ?: ?(\\d+\\.\\d+)")
.Select(x => x.Groups[1].Value);
您可以获得所有\"main\":{\"temp\":
值。
//classes.cs
public class RootObject
{
public List<List> list { get; set; }
}
public class List
{
public Main main { get; set; }
}
public class Main
{
public double temp { get; set; }
}
//API client
using Newtonsoft.Json;
var object = JsonConvert.DeserializeObject<RootObject>(test); //test is JSON response as string
foreach(item in list){
var temp = item.main.temp;
}
//Hope it helps