通过搜索 id 从字符串数组中获取值

Get a value from string array by search id

我在数组 Cmnts 中有一个值列表,例如

"6_12_g2_text":"22","6_12_g3_text":"33","6_12_g4_text":"44"

var CmntsValue = forms["textvalue"];    
string[] Cmnts = CmntsValue.Split('{','}');

不,我想搜索 6_12_g2_text 和 return 22(6_12_g3_text 和 return 33)。我怎样才能做到这一点?


我得到的值如下图所示!

我在此处插入更新后的代码 [在第二张图片中]。请检查一下

您拥有的值实际上是一个 JSON 字符串。使用 Json.NET 您可以轻松地将字符串解析为 Dictionary<string, int>,如下所示:

var json = "{\"6_12_g2_text\":\"22\",\"6_12_g3_text\":\"33\",\"6_12_g4_text\":\"44\"}";
var dictionary = JsonConvert.DeserializeObject<Dictionary<string, int>>(json);

然后按键提取任意值:

int value;
if (dictionary.TryGetValue("6_12_g2_text", out value))
{
    Console.WriteLine(value);
}

编辑:

看到实际的 JSON 字符串后,您将不得不做一些额外的工作:

var json = "{\"1_3_g1_text\":\"11\"}
            {\"1_3_g2_text\":\"\"}
            {\"6_12_g2_text\":\"test\"}
            {\"6_12_g3_text\":\"\"}
            {\"1_17_g1_text\":\"works\"}
            {\"5_19_g2_text\":\"submitted\"}
            {\"5_19_g3_text\":\"2\"}";

var jsons = json.Split('{', '}').Where(x => !string.IsNullOrWhiteSpace(x));
var concatenatedJson = string.Format("{{{0}}}", string.Join(",", jsons));

var intermidiateDict = JsonConvert.DeserializeObject<Dictionary<string, string>>(
                                                                      concatenatedJson);