[英]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.