gpt4 book ai didi

javascript - 如何使用动态键和值字符串动态构建 Json 对象

转载 作者:行者123 更新时间:2023-11-29 16:47:34 30 4
gpt4 key购买 nike

我有一个json我想添加键值对(在构建以下格式后),如

var json = {};
var a = '"key1" : "value1"'; //coming as dynamic
var b = '"key2" : "value2"'; // coming as dynamic
json.push(a); // i know it is wrong.
json.push(b); // i know it is wrong.
console.log(json); // {"key1": "value1", "key2": "value2"} expected

var array = [];
var c = '{"key1": "value1"}';
var d = '{"key2": "value2"}';
array.push(c);
array.push(d);
console.log(array); // ["{"key1": "value1"}", "{"key2": "value2"}"]

像上面一样,我可以将对象推送到数组,但我如何才能将 json 字符串直接推送到 json 对象。

最佳答案

首先澄清一点;没有“JSON 对象”这样的东西。有一个 JSON 格式的字符串,还有一个对象。它们是两个独立的实体。

要将字符串添加到对象,请指定对象的属性并设置其值。您不需要为此使用 push(),因为它专门用于数组。在您的情况下,它应该如下所示:

var obj = {};
obj.key1 = "value1";
obj.key2 = "value2";
console.log(obj); // = { "key1": "value1", "key2": "value2" }

要动态设置 key ,请使用括号表示法:

var key = 'foo';
obj[key] = 'bar';
console.log(obj); // = { 'foo': 'bar' }

如果您随后需要将对象转换为 JSON 字符串,请对该对象调用 JSON.stringify:

var json = JSON.stringify(obj);

另请注意,在您的第二个示例中,您最终得到的是一个字符串数组,而不是一个对象数组。如果你想要一个对象数组,你需要删除你设置的值周围的引号,如下所示:

var array = [];
var c = { "key1": "value1" };
var d = { "key2": "value2" };
array.push(c);
array.push(d);
console.log(array); // [{ "key1": "value1" }, { "key2": "value2" }]

注意对象中引号位置与控制台结果的不同。

关于javascript - 如何使用动态键和值字符串动态构建 Json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39763342/

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