Javascript 在一个JSON文件中查找键的值,并将其替换为第二个JSON中的键的值,其中第一个JSON中的值与第二个JSON中的键匹配

Javascript 在一个JSON文件中查找键的值,并将其替换为第二个JSON中的键的值,其中第一个JSON中的值与第二个JSON中的键匹配,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我有两个JSON文件 文件1 文件2 我想要实现的是一个脚本,该脚本在文件1中查找键“orgUnit”的值,并将其替换为与文件2中匹配的键的值。 例如,在文件1中找到键orgUnit=tBl4WduwWRw的值,并用文件2中的ert678dDvk替换它。如果您想使用自己的代码,而不是使用任何库或可用函数。这只是一个小代码,让我们来看一看: function handleObject(object, replaceValues) { var values = Object.values(o

我有两个JSON文件

文件1

文件2

我想要实现的是一个脚本,该脚本在文件1中查找键“orgUnit”的值,并将其替换为与文件2中匹配的键的值。
例如,在文件1中找到键orgUnit=tBl4WduwWRw的值,并用文件2中的ert678dDvk替换它。

如果您想使用自己的代码,而不是使用任何库或可用函数。这只是一个小代码,让我们来看一看:

function handleObject(object, replaceValues) {
    var values = Object.values(object);
    var keys = Object.keys(object);
    for (var i=0; i<values.length; i++) {
        object[keys[i]] = handleReplaceOneValue(values[i], replaceValues);
    }
    return object;
}

function handleArray(array, replaceValues) {
    for (var i=0; i<array.length; i++) {
        array[i] = handleReplaceOneValue(array[i], replaceValues);
    }
    return array;
}

function handleReplaceOneValue(value, replaceValues) {
    if (Array.isArray(value)) {
      return handleArray(value, replaceValues)
    }
    if (value instanceof Object) {
      return handleObject(value, replaceValues)
    }
    return replaceValues[value] ? replaceValues[value] : value;
}

您的第二个文件似乎不是有效的JSON。它应该是一个数组吗?在任何情况下,使用和的组合应该很容易做到这一点。只需映射dataValues并从回调函数返回相同的对象,通过使用另一个数组上的find来查找匹配的值,修改了键orgUnit。
{"tBl4WduwWRw" : "ert678dDvk"},
{"zndtyhyYuh6" : "tY67UhdJj8"},
{"Uuv34dh6Hjd" : "O0plYhdjyj"},
{"PYudhikuj23" : "H67JuyghkN"},
function handleObject(object, replaceValues) {
    var values = Object.values(object);
    var keys = Object.keys(object);
    for (var i=0; i<values.length; i++) {
        object[keys[i]] = handleReplaceOneValue(values[i], replaceValues);
    }
    return object;
}

function handleArray(array, replaceValues) {
    for (var i=0; i<array.length; i++) {
        array[i] = handleReplaceOneValue(array[i], replaceValues);
    }
    return array;
}

function handleReplaceOneValue(value, replaceValues) {
    if (Array.isArray(value)) {
      return handleArray(value, replaceValues)
    }
    if (value instanceof Object) {
      return handleObject(value, replaceValues)
    }
    return replaceValues[value] ? replaceValues[value] : value;
}
handleObject(YourJSONFile1, YourJSONFile2);