C# 从Json字符串获取信息时发生Json绑定错误

C# 从Json字符串获取信息时发生Json绑定错误,c#,json,json.net,C#,Json,Json.net,上面的代码是来自服务器的json响应。我想从组件列表中获取所有信息。 我使用以下方法: { "conjunctionOp": { "conjuctionOp": 1 }, "componentList": [ { "valueIdentifier": "LOGIN", "valueMask": "LOGIN_FIELD", "fieldType": { "typeName": "IF_LOGIN" },

上面的代码是来自服务器的json响应。我想从组件列表中获取所有信息。 我使用以下方法:

{
  "conjunctionOp": {
    "conjuctionOp": 1
  },
  "componentList": [
    {
      "valueIdentifier": "LOGIN",
      "valueMask": "LOGIN_FIELD",
      "fieldType": {
        "typeName": "IF_LOGIN"
      },
      "size": 20,
      "name": "LOGIN",
      "displayName": "ID",
      "isEditable": true,
      "isOptional": false,
      "isEscaped": false,
      "helpText": "1427",
    },
  ],
  "defaultHelpText": "9307"
}

请帮助我找到解决方案

您不应该遍历数据对象,因为它已经是一个完整的JSON对象,而不是数组

您可以通过以下方式直接访问valueIdentifier:

dynamic data = JsonConvert.DeserializeObject<dynamic>(json_additem_response);
foreach (dynamic item in data)
{
    Session["valueIdentifier"] = item.componentList[0].valueIdentifier.ToString();
}

如果您收到一个对象数组,并且必须对其进行迭代,则foreach将非常合适。

@PrayashBhatt数组用[]括号括起来,对象用{}括起来。非常感谢。这很有帮助。我还想将上述信息发送到web服务。如何??@PrayashBhatt这是另一个问题。然而,如果你问它,它可能会因为太宽而关闭。你需要阅读一些关于这个主题的文献和外部文章。
dynamic data = JsonConvert.DeserializeObject<dynamic>(json_additem_response);
Session["valueIdentifier"] = data.componentList[0].valueIdentifier.ToString();