c# - 如何获取 JSON 数组 C# 中项目的值?

标签 c# arrays json json.net json-deserialization

因此,请阅读此详细信息以获取更多信息。我收到错误 找不到方法:'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;

。谢谢大家。 example picture

最佳答案

在这种情况下我不会使用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/

相关文章:

c# - Razor View : Intellisense not working with C# 3 for class libraries

arrays - 构建一个 "sparse"查找数组,最小化内存占用

json - Grails RESTful Controller 。 POST 命中 index() 而不是 save()

c - 两个数组给出第三个数组的最大值

java - 更改 JSON 函数以使其工作?

javascript - 查找子对象的最大值

javascript - 按下按键后立即填充结果

c# - EF Core 5 - 如何将 EF.Functions.Like 与映射到 JSON 字符串的自定义属性一起使用?

c# - 如何将 ViewModel 本地化添加到 Blazor?

c - 在函数参数中传递数组时访问数组的最后一个元素显示垃圾值