gpt4 book ai didi

javascript - 使用javascript从另一个填充JSON

转载 作者:行者123 更新时间:2023-11-30 14:18:58 26 4
gpt4 key购买 nike

给定一个空的 JSON 1:

JSON1 = {
"person": { "firstName": "" },
"products": { "packName": "", "packSize": "" }
}

和比 JSON 1 有更多字段的 JSON 2:

JSON2 = {
"person": { "firstName": "Ahmed", "job": "Doctor" },
"products": { "packName": "antibiotic", "packSize": "large" }
}

我想用 JSON 2 中对应的值填充 JSON 1

{
"person": { "firstName": "Ahmed" },
"products": { "packName": "antibiotic", "packSize": "large" }
}

我尝试了几种方法,但没有成功

var newObj = {};
var parsedJson1 = JSON.parse(tw.local.JSON1);
var parsedJson2 = JSON.parse(tw.local.JSON2);
var i;

for (i in parsedJson1) {
var key=i;
var subkey=i;
for (j in parsedJson2) {
var k=j;
var s=j;
if (key == k && subkey == s) {
newObj[key][subkey] = parsedJson2[j];
}
}
}
tw.local.stringifiedJSON = JSON.stringify(newObj);

最佳答案

这是一个关于如何做到这一点的例子:

请注意,这假定了以下条件:

  1. 您知道第二个对象将具有所有必需的键。
  2. 第一层的所有值都是对象
  3. 请注意,此解决方案仅适用于指定的结构,如果您需要处理任何变化,则需要使其更具防御性。

步骤:

  • 遍历有效键(JSON1 上的所有键)
  • 对于每个有效的键,将其添加到 newObj 并迭代有效的 subKeys
  • 将值从 JSON2 复制到 newObj

注意:我稍微更改了您的代码,以便它可以在此站点上执行

const JSON1 = `{
"person": { "firstName": "" },
"products": { "packName": "", "packSize": "" }
}`;

const JSON2 = `{
"person": { "firstName": "Ahmed", "job": "Doctor" },
"products": { "packName": "antibiotic", "packSize": "large" }
}`;


const parsedJson1 = JSON.parse(JSON1);
const parsedJson2 = JSON.parse(JSON2);
const newObj = {};
const validKeys = Object.keys(parsedJson1);

for (let i of Object.keys(parsedJson1)) {
if (newObj[i] === undefined) {
newObj[i] = {};
}
for (let j of Object.keys(parsedJson1[i])) {
newObj[i][j] = parsedJson2[i][j];
}
}

console.log(JSON.stringify(newObj));

关于javascript - 使用javascript从另一个填充JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53059161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com