gpt4 book ai didi

javascript - 如果 json 对象具有字符串、 bool 值和数字类型的组合,如何迭代它

转载 作者:行者123 更新时间:2023-11-28 05:37:47 25 4
gpt4 key购买 nike

我有一个 node.js 应用程序,它接受 JSON 对象,然后加密 JSON 对象键值。我有一个函数,它获取值然后加密数据。现在我只需要迭代我能够使用的函数的 JSON 键值。

var JsonData = JSON.parse(jsonString);
var callFunction = iterate(JsonData);

function iterate(JsonData) {
for (var exKey in JsonData) {
if (JsonData.hasOwnProperty(exKey)) {
if (typeof JsonData[exKey] == "object") {
iterate(JsonData[exKey]);
} else {
JsonData[exKey] = encrypt(JsonData[exKey]);
}
}
}
}
var encrpted = JSON.stringify(JsonData);

但问题是我只能迭代字符串类型 JSON 对象,即(例如 {"name":"sam","gender":"male"})。如果我们有带有 boolean 或数字或两者类型以及字符串类型的 JSON 对象,则它无法迭代并且我收到一些错误..(例如 {"name":"sam","age":21,"isMarried":false})。

那么,如果我有字符串以外的类型,如何迭代该函数呢?我知道使用替换函数我们可以将boolean,num类型转换为字符串,然后传递给函数。但是由于我先加密然后解密,解密后我们得到字符串类型的所有内容,这我不想。他们需要保持原来的类型。所以我认为这是行不通的。那么任何人都可以提出任何想法并帮助我。希望我的问题很清楚。任何建议表示赞赏。

最佳答案

如果你想迭代和解析 JSON 对象的所有属性,你可以这样使用 Object.keys() :

obj = {
booleanVar : true,
numericVar : 125,
stringVar : "a string"
};
var iterate = JsonData => Object.keys(JsonData).forEach(key => console.log(JsonData[key]));
iterate(obj); // true
// 125
// a string

关于javascript - 如果 json 对象具有字符串、 bool 值和数字类型的组合,如何迭代它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39212193/

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