首页 > 解决方案 > 如何在 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

标签: javascriptajax

解决方案


您已经可以访问从您的 解析的数据JSON.parse,它返回一个对象,因此可以使用['key']访问器调用它:

let json = '{"key1": 2, "key2": "test"}';
let values = JSON.parse(json);
console.log(values.key1);
console.log(values['key2']);


推荐阅读