【发布时间】:2018-12-17 07:18:43
【问题描述】:
我有两个 JSON 文件。
文件1
{
"dataSet": "w28h46c7XUD",
"completeDate": "2018-10-23T14:16:11.384+0000",
"period": "2018Q3",
"orgUnit": "tBl4WduwWRw",
"dataValues": [
{
"dataElement": "QRMyfx7WQKa",
"period": "2018Q3",
"orgUnit": "zndtyhyYuh6",
"categoryOptionCombo": "gGhClrV5odI",
"attributeOptionCombo": "gGhClrV5odI",
"value": "90",
"storedBy": "biostatwakiso",
"created": "2018-10-25T14:52:26.835+0000",
"lastUpdated": "2018-10-25T14:52:26.835+0000",
"followUp": false
},
{
"dataElement": "btM76ubdLKE",
"period": "2018Q3",
"orgUnit": "Uuv34dh6Hjd",
"categoryOptionCombo": "Bbb6ZmzRhtO",
"attributeOptionCombo": "gGhClrV5odI",
"value": "7",
"storedBy": "HMISWAKISO",
"created": "2018-10-11T08:58:32.046+0000",
"lastUpdated": "2018-10-11T08:58:32.046+0000",
"followUp": false
},
{
"dataElement": "VCYHJu3BxpN",
"period": "2018Q3",
"orgUnit": "PYudhikuj23",
"categoryOptionCombo": "RbnGbnNxoJF",
"attributeOptionCombo": "gGhClrV5odI",
"value": "3",
"storedBy": "biostatwakiso2018",
"created": "2018-10-11T08:58:12.787+0000",
"lastUpdated": "2018-10-23T14:00:17.703+0000",
"followUp": false
},
...
文件2
{"tBl4WduwWRw" : "ert678dDvk"},
{"zndtyhyYuh6" : "tY67UhdJj8"},
{"Uuv34dh6Hjd" : "O0plYhdjyj"},
{"PYudhikuj23" : "H67JuyghkN"},
我想要实现的是一个脚本,它在 file1 中找到键“orgUnit”的值,并将其替换为 file2 中与其匹配的键的值。 例如。在 file1 中找到 key orgUnit = tBl4WduwWRw 的值并将其替换为 file2 中的 ert678dDvk。
【问题讨论】:
-
您的第二个文件似乎不是有效的 JSON。它应该是一个数组吗?无论如何,使用Array.prototype.map 和Array.prototype.find 的组合应该很容易做到这一点。只需
map()超过dataValues并从回调函数返回相同的对象,并在另一个数组上使用find()修改键orgUnit以查找匹配值。
标签: javascript jquery arrays json