簡體   English   中英

Javascript function 從 JSON 拉數據?

[英]Javascript function to pull data from JSON?

如何根據單詞創建 javascript function 以從 JSON 中提取數據? 我正在使用任務管理器 API 並希望根據任務標題填充字段。 例如:

{
 "data": {
    "boards": [
      {
        "owner": {
          "id": 555555555
        },
        "groups": [
          {
            "id": "new_group",
            "title": "Forecasts",
            "items": [
              {
                "id": "355670938",
                "name": "PIPE: Production & Client Management | STAGE: New Support Intake | NAME: TESTY | DATE: 10/27/2019 | TIME: 8:00 am | TIME ZONE: Central Time | DURATION: 60 minutes | TYPE: All Virtual | AUDIENCE VIEW:"
              }
            ]
          }
        ]
      }
    ]
  },
  "account_id": 55555555
}

我需要從 items.name 中提取的 DATE、TIME、DURATION 和 TYPE 信息。 我怎么能設置一個 function 來提取這些信息?

您首先需要找到要從中提取信息的位置。

然后你只需在管道上拆分,然后在冒號上拆分。

 let targetStr = getTree().data.boards[0].groups[0].items[0].name; let fields = ['DATE', 'TIME', 'DURATION', 'TYPE']; console.log(extractData(targetStr, fields)); function extractData(str, fields) { return str.split(/\s*\|\s*/).reduce((res, entry) => { let dat = entry.split(/\s*:\s*/); return fields.indexOf(dat[0]) > -1? Object.assign(res, { [dat[0]]: dat[1] }): res; }, {}); } function getTree() { return { "data": { "boards": [{ "owner": { "id": 555555555 }, "groups": [{ "id": "new_group", "title": "Forecasts", "items": [{ "id": "355670938", "name": "PIPE: Production & Client Management | STAGE: New Support Intake | NAME: TESTY | DATE: 10/27/2019 | TIME: 8:00 am | TIME ZONE: Central Time | DURATION: 60 minutes | TYPE: All Virtual | AUDIENCE VIEW:" }] }] }] }, "account_id": 55555555 }; }
 .as-console-wrapper { top: 0; max-height: 100%;important; }

假設| 從未在數據中使用過,您可以執行以下操作:

items.name.split('|').filter(data => /^(DATE:|TIME:|DURATION:|TYPE:)/.test(data));

JSON.parse()采用 JSON 字符串並將其轉換為 JavaScript ZA8CFDE6331BD59EB26ACZF84。 從那里您可以返回所需鍵的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM