javascript - 如何在 Javascript 中从 Ajax 响应创建动态对象属性
问题描述
我正在使用 Ajax 来获取库存项目的列表,我想要一个名为 inventory 的对象,然后创建名为响应项目的属性,这意味着如果我在我的数据库中插入更多项目我不需要在我的 javascript 文件中对对象的元素进行硬编码。现在我可以创建对象,但我无法访问动态创建的属性及其值。我想用一些用户输入来改变值,比如按下按钮。
我尝试使用字典并进行搜索,但似乎没有用
var inventory = {};
$.ajax({
url:"phpf/getItems.php",
type:"POST",
data:{},
success: function (data) {
var result = JSON.parse(data);
for (var index = 0; index < result.length; index++) {
var str = String(result[index][0]);
inventory[str] = 5;
}
}
});
console.log(inventory["Cookies"]);
console.log(inventory[0]);
我想访问像 inventory["something"] 这样的对象的信息,但是控制台说它是未定义的,当我尝试将该值添加到另一个数字时,结果显示为 NAN
解决方案
您已经可以访问从您的 解析的数据JSON.parse
,它返回一个对象,因此可以使用['key']
访问器调用它:
let json = '{"key1": 2, "key2": "test"}';
let values = JSON.parse(json);
console.log(values.key1);
console.log(values['key2']);