因此,请阅读此详细信息以获取更多信息。我收到错误
找不到方法:'System.String System.String.Format(System.IFormatProvider, System.String, System.Object)'。
当我尝试获取数组项的值时。
数组是:
{
[
{
"GROUP_MOD_ID": "G06",
"ADMIN": 1,
"USERS": 0
}
]
}
这是代码片段
dynamic obj_str = JsonConvert.DeserializeObject(obj);
string value_admin = obj_str["ADMIN"];
Console.WriteLine(value_admin);
if (value_admin == "1")
return true;
else
return false;
最佳答案
在这种情况下我不会使用dynamic
。我通常建议避免在 C# 中使用dynamic
。相反,我更喜欢 JToken 风格的方法(在 Newtonsoft.Json.Linq 命名空间中,尽管这并不意味着您必须使用 Linq):
JArray array = JArray.Parse( input );
JObject firstObject = (JObject)array.First;
String adminValue = (String)firstObject.GetValue("ADMIN");
在生产中,您需要添加输入验证代码,以确保输入 JSON 数组和对象实际上具有元素和值,并相应地处理这些错误。
但是如果您确定输入正确,您可以将其减少到单行:
String adminValue = (String)( ((JObject)JArray.Parse( input )).First.GetValue("ADMIN") );
...当然,以可读性为代价。
关于c# - 如何获取 JSON 数组 C# 中项目的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40689394/