通过搜索 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);
我在数组 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);