【发布时间】:2021-09-03 03:38:17
【问题描述】:
我正在检查 server.json 文件中的 input.json 文件键是否匹配,然后更新 server.json 文件的值。问题是 server.json 文件是动态 json 文件,结构无法预测,它包含 100 个嵌套数组和复杂格式的元素。我只想检查 server.json(动态内容)文件中的 input.json 键是否可用
我有以下带有一些属性和值的 json 输入文件:
input.json:
{"country":"GB","currency":"GBP"}
示例 server.json(动态内容不可预测):
{
"bank": [
{
"country":"US",
"currency":"USD"
}
]
}
输出:
{
"bank": [
{
"country":"GB",
"currency":"GBP",
}
]
}
如果键匹配,我只想从 input.json 文件更新上述 server.json 文件值。并且两个(Input.json, and server.json)文件应该有相同的key(国家,货币)。但是问题是server.json中key的索引是未知的,它会是动态内容。
用户可以根据需要更新的键匹配提供 server.json 中可用的任何输入。
尝试以下示例:
async function generateRequestBody(actual, index, functionRef) {
let callback;
let payload;
_globaldeclartion = actual;
Object.keys(dataset[index]).forEach(function (queueId) {
if (queueId == functionRef) {
payload = dataset[index][queueId];
return;
}
});
payload = await jsonValidator(payload);
await updateJsonFile(_globaldeclartion, async (data) => {
Object.keys(data).forEach(async (T) => {
console.log(T);
data[T] = payload[T];
});
callback = data;
return data;
});
return callback;
如果 input.json 文件键与 server.json(不可预测的 json 结构)文件匹配,我只想更新 server.json。
更新:
有时 server.js 文件将遵循结构化:
{
"country":"GB",
"currency":"GBP",
}
有时它可能有更多的嵌套数组。
{
"bank":[
{
"property":[
{
"country":"GB",
"currency":"GBP"
}
],
}
]
}
并且 server.json 结构是不可预测的,我们只需要检查 server.json 中的 input.json 键是否可用,并且需要更改这些值而与结构无关。
更新 - 最新:
async function getIdea(input, data)
{
var datastring = JSON.stringify(data);
Object.entries(input).forEach(([key, value]) => {
console.log(key);
console.log(value);
var re = new RegExp(`"${key}":"[^"]*"`, "g");
console.log(re);
dataString = datastring.replace(re, `"${key}":"${value}"`);
});
console.log(JSON.parse(datastring))
}
getIdea(输入,数据);
Input.json
{
"country":"GB",
"currency":"GBP"
}
data.json
{
"bank": [
{
"country":"US",
"currency":"USD",
}
]
}
输出控制台:
country
GB
/"country":"[^"]*"/g
currency
GBP
/"currency":"[^"]*"/g
{
bank: [
{
country: 'US',
currency: 'USD',
}
]
}
【问题讨论】:
标签: javascript node.js json npm node-modules