簡體   English   中英

在javascript中將復雜數組轉換為json

[英]converting a complex array into json in javascript

基本上我想將 Excel 數據轉換為復雜的 JSON。 到目前為止,我已將 excel 數據轉換為如下所示的行數組。 第一個數組將始終是表格的標題。

const row = [["rule", "key_phrase", "doc_type", "doc_priority", "section_title"],
["approval related", "approved", "assessment report", 1, "4. Recommendations, outcome"],
["prime designation", "prime,prime designation", "assessment-report", 1, "1. Background information on the procedure, 1.1. Submission of the dossier"],
["single-arm trials", "single-arm, single arm, single, arm", "NDA", 2, "5.1 Pharmaco dymnamic properties, Clinical Efficacy"],
["single-arm trials", "single-arm, single arm, single, arm", "NDA", 2, "CLINICAL/STATISTICAL/PHARMACOVIGILANCE, Clinical Program"]]

在此處輸入圖片說明

現在我想將該數組轉換為 JSON。 每一個逗號,分隔值應該進入相同的密鑰。 例如。 key_phrase: ["prime", "prime designation"]

所以從上面的excel數據來看,第一個JSON對象應該是這樣的:

{
  "biz_rules": [
    {
      "rule": "approval related",
      "key_phrase": [
        "approved"
      ],
      "doc": [
        {
          "type": "assessment-report",
          "priority": 1,
          "sections": [
            {
              "title_keywords": [
                "4. Recommendations",
                "outcome"
              ],
              "content_keywords": [
                "marketing authorization"
              ]
            }
          ]
        }
      ]
    },
    {
      "rule": "prime designation",
      "key_phrase": [
        "prime",
        "prime designation"
      ],
      "doc": [
        {
          "type": "assessment-report",
          "priority": 1,
          "sections": [
            {
              "title_keywords": [
                "1. Background information on the procedure",
                "1.1. Submission of the dossier"
              ],
              "content_keywords": [
                "prime"
              ]
            }
          ]
        }
      ]
    },
    {
      "rule": "single-arm trials",
      "key_phrase": [
        "single-arm",
        "single arm",
        "single",
        "arm"
      ],
      "doc": [
        {
          "type": "NDA",
          "priority": 2,
          "sections": [
            {
              "title_keywords": [
                "5.1 Pharmacodynamic properties",
                "Clinical efficacy"
              ],
              "content_keywords": [
                "single-arm trials"
              ]
            },
            {
              "title_keywords": [
                "CLINICAL/STATISTICAL/PHARMACOVIGILANCE",
                "Clinical Program"
              ],
              "content_keywords": [
                "single-arm trials"
              ]
            }
          ]
        },
        {
          "type": "assessment-report",
          "priority": 1,
          "sections": [
            {
              "title_keywords": [
                "5. Clinical efficacy ",
                "2.5.2. Main studies"
              ],
              "content_keywords": [
                "single-arm trials"
              ]
            }
          ]
        },
        {
          "type": "Clinical trials",
          "priority": 2,
          "sections": [
            {
              "content_keywords": [
                "single-arm trials"
              ]
            }
          ]
        },
        {
          "type": "press-release",
          "priority": 2,
          "sections": [
            {
              "content_keywords": [
                "single-arm trials"
              ]
            }
          ]
        },
        {
          "type": "press-releases",
          "priority": 2,
          "sections": [
            {
              "content_keywords": [
                "single-arm trials"
              ]
            }
          ]
        },
        {
          "type": "media-releasess",
          "priority": 2,
          "sections": [
            {
              "content_keywords": [
                "single-arm trials"
              ]
            }
          ]
        }
      ]
    }
]}

忽略content_keywords 規則按部分唯一划分。 因此,部分內的每個title_keywords將是 excel 中的單獨規則。

任何幫助將非常感激。 提前致謝。

你可以從

 const valueToCsv = text => (text.indexOf(', ') > 0) ? text.split(', ') : text; const newArr = arr.slice(1).map(row => ({ rule: valueToCsv(row[0]), key_phrase: valueToCsv(row[1]), doc: [{ type: valueToCsv(row[2]), priority: parseInt(row[3]), sections: [ { title_keywords: valueToCsv(row[4]) } ] }] })); console.log(JSON.stringify(newArr));

這段代碼。

您可以嘗試以下操作:

 const data = [["rule", "key_phrase", "doc_type", "doc_priority", "section_title"], ["approval related", "approved", "assessment report", 1, "4. Recommendations, outcome"], ["prime designation", "prime,prime designation", "assessment-report", 1, "1. Background information on the procedure, 1.1. Submission of the dossier"], ["single-arm trials", "single-arm, single arm, single, arm", "NDA", 2, "5.1 Pharmaco dymnamic properties, Clinical Efficacy"], ["single-arm trials", "single-arm, single arm, single, arm", "NDA", 2, "CLINICAL/STATISTICAL/PHARMACOVIGILANCE, Clinical Program"]] data.shift() const obj = data.map(e => { return { rule: e[0], key_phrase: e[1], doc: { doc_type: e[2], doc_priority: e[3], }, section_title: e[4], } })

暫無
暫無

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

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