【问题标题】:How can I access specific value of JSON object? [duplicate]如何访问 JSON 对象的特定值? [复制]
【发布时间】:2016-12-02 13:59:22
【问题描述】:

我似乎无法控制台记录项目名称,仅此而已。它位于位置数据 -> 定价 -> 表格 -> 项目 -> 名称中。我要输出“玩具熊猫”。

[
  {
    "event": "recipient_completed",
    "data": {
      "id": "msFYActMfJHqNTKH8YSvF1",
      "name": "Sample Document",
      "status": "document.draft",
      "date_created": "2014-10-06T08:42:13.836022Z",
      "date_modified": "2016-03-04T02:21:13.963750Z",
      "action_date": "2016-09-02T22:26:52.227554",
      "action_by": {
        "id": "FyXaS4SlT2FY7uLPqKD9f2",
        "email": "john@appleseed.com",
        "first_name": "John",
        "last_name": "Appleseed"
      },
      "created_by": {
        "id": "FyXaS4SlT2FY7uLPqKD9f2",
        "email": "john@appleseed.com",
        "first_name": "John",
        "last_name": "Appleseed",
        "avatar": "https://pd-live-media.s3.amazonaws.com/users/FyXaS4SlT2FY7uLPqKD9f2/avatar.jpg"
      },
      "recipients": [
        {
          "id": "FyXaS4SlT2FY7uLPqKD9f2",
          "email": "john@appleseed.com",
          "first_name": "John",
          "last_name": "Appleseed",
          "role": "signer",
          "recipient_type": "Signer",
          "has_completed": true
        }
      ],
      "sent_by": {
        "id": "FyXaS4SlT2FY7uLPqKD9f2",
        "email": "john@appleseed.com",
        "first_name": "John",
        "last_name": "Appleseed",
        "avatar": "https://pd-live-media.s3.amazonaws.com/users/FyXaS4SlT2FY7uLPqKD9f2/avatar.jpg"
      },
      "metadata": {
        "salesforce_opp_id": "123456",
        "my_favorite_pet": "Panda"
      },
      "tokens": [
        {
          "name": "Favorite Animal",
          "value": "Panda"
        }
      ],
      "fields": [
        {
          "uuid": "YcLBNUKcx45UFxAK3NjLIH",
          "name": "Textfield",
          "title": "Favorite Animal",
          "value": "Panda",
          "assigned_to": {
            "id": "FyXaS4SlT2FY7uLPqKD9f2",
            "email": "john@appleseed.com",
            "first_name": "John",
            "last_name": "Appleseed",
            "role": "Signer",
            "recipient_type": "signer",
            "has_completed": true,
            "type": "recipient"
          }
        }
      ],
      "pricing": {
        "tables": [
          {
            "id": 82307036,
            "name": "PricingTable1",
            "is_included_in_total": true,
            "summary": {
              "discount": 10,
              "tax": 0,
              "total": 60,
              "subtotal": 60
            },
            "items": [
              {
                "id": "4ElJ4FEsG4PHAVNPR5qoo9",
                "qty": 1,
                "name": "Toy Panda",
                "cost": "25",
                "price": "53",
                "description": "Buy a Panda",
                "custom_fields": {
                  "sampleField": "Sample Field"
                },
                "custom_columns": {
                  "sampleColumn": "Sample Column"
                },
                "discount": 10,
                "subtotal": 60
              }
            ],
            "total": 60
          }
        ]
      },
      "tags": [
        "test tag",
        "sales",
        "support"
      ]
    }
  }
]

非常感谢您的提示。谢谢你

【问题讨论】:

  • 你目前正在尝试什么?
  • 你是如何访问节点的?
  • 假设你的变量名是a,你可以这样访问这个名字:var name= a[0].data.pricing.tables[0].items[0].name;
  • 我尝试输出该特定键的值。 ["0"].data.pricing.tables["0"].items["0"].name
  • 您使用括号(表示字符串)来访问数组中的索引,数组索引应该是数字。 [0] 而不是 ["0"]

标签: javascript arrays json object multidimensional-array


【解决方案1】:

如果您将 JSON 对象存储到名为 obj 的变量中,您可以通过以下方式访问该值(“Toy Panda”):

obj.data.pricing.tables[0].items[0].name

因为表格和项目都是数组。

【讨论】:

    【解决方案2】:

    这是一个示例:

    <script>
           var data = '{"name": "mkyong","age": 30,"address": {"streetAddress": "88 8nd Street","city": "New York"},"phoneNumber": [{"type": "home","number": "111 111-1111"},{"type": "fax","number": "222 222-2222"}]}';
    
        var json = JSON.parse(data);
    
        alert(json["name"]); //mkyong
        alert(json.name); //mkyong
    </script>
    

    参考这个链接:[https://www.mkyong.com/javascript/how-to-access-json-object-in-javascript/][1]

    在你的情况下,它应该是这样的:

    var data = // your json;
    var json = JSON.parse(data);
    console.log(json.pricing.tables.items[0].name;
    

    【讨论】:

      猜你喜欢
      • 2014-07-16
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 1970-01-01
      • 2022-01-28
      • 2012-06-06
      • 1970-01-01
      相关资源
      最近更新 更多