C# 如何从包含未知对象的json文件返回值?
我试图用一个字符串搜索一个json文件,然后从与该字符串相同的对象返回一个值。这是json文件的一部分:C# 如何从包含未知对象的json文件返回值?,c#,json,C#,Json,我试图用一个字符串搜索一个json文件,然后从与该字符串相同的对象返回一个值。这是json文件的一部分: [ "7c6b2f", "EYZ", "Australia", 1611990353, 1611990419, 144.8364, -37.6611, 13114.02, false, 50.42,
[
"7c6b2f",
"EYZ",
"Australia",
1611990353,
1611990419,
144.8364,
-37.6611,
13114.02,
false,
50.42,
171.56,
null,
null,
null,
"5064",
true,
0
],
[
"7c6b0c",
"JST",
"New-Zealand",
1611990440,
1611990440,
148.4636,
-33.7973,
10668,
false,
248.2,
37.84,
-0.33,
null,
11170.92,
"1461",
false,
0
]
我希望这样,如果用户输入EYZ,代码将返回Australia。我目前正在将json文件设置为字符串,但我不确定在这种情况下如何创建要搜索的对象。首先,这不是一个有效的json文件。您需要将其包含在数组元素中:
[
[
"xyz"
...
],
[
]
]
一旦对象有效,就可以使用JSON.Net库在代码中对其进行解析
// Here you'll have your value
string json = @"[
'Small',
'Medium',
'Large'
]";
JArray a = JArray.Parse(json);
您可以看到如何迭代/访问它们。JSON.Net
public static string Search(string input)
{
using (var sr = new StreamReader("your.json"))
{
var reader = new JsonTextReader(sr);
while (reader.Read())
{
if (reader.TokenType==JsonToken.String)
{
var value = reader.ReadAsString();
if (value == input)
{
return reader.ReadAsString();
}
}
}
}
return null;
}
SystemExtensions.Core
public static string Search(string input)
{
using (var sr = new StreamReader("your.json"))
{
var reader = JsonReader.CreateJson5(sr, 2048);
while (reader.Read())
{
if (reader.IsString)
{
var value = reader.GetString();
if (value == input)
{
if (reader.Read() && reader.IsString)
{
return reader.GetString();
}
}
}
}
}
return null;
}