向JSON添加新成员时出错
Error when adding a new member to JSON
(我在SO上查看了至少几十篇关于这个错误的帖子,并做了一些我认为合适的更改,但都无济于事)
因此,我从一个简单的var
:开始
var _jsonStr = '{"hotspots:":[]}';
然后,解析它:
var _jsonObj = JSON.parse(_jsonStr);
在HTML的另一部分中,我获取变量id
、x
和y
的值,并将这些值分配给_jsonObj
,如下所示:
_jsonObj.hotspots[0].id = id; // error!
_jsonObj.hotspots[0].xval = x;
_jsonObj.hotspots[0].yval = y;
我希望最终在我的JSON中得到一组id
、x
、y
值对,它们看起来像:
var _jsonObj = {
"hotspots": [
{ id: 0, xval: 25, yval: 50 },
{ id: 1, xval: 80, yval: 120 },
{ id: 2, xval: 39, yval: 91 },
...
]
};
我不想承认这一点,但我只是不明白为什么我一直收到一个错误,上面评论道:"无法设置未定义或null引用的属性'id'"。在我看来,在JSON对象中添加一个新成员有点不对,但我不明白为什么会这样。
_jsonObj.hotspots[0]
是undefined
,因为_jsonObj.hotspots
是空的。如果你想在最后创建一个包含这些内容的新对象,它将是:
_jsonObj.hotspots.push({
id: id,
xval: x,
yval: y
});
小提示:它不是"JSON对象",也不是"将其转换为JSON表示法"。您正在将其从JSON(代表JavaScript对象符号——不要在末尾添加另一个"符号"!)转换为JavaScript对象。
因为_jsonObj.hotspots[0]
是undefined
,所以您会得到错误。
这应该解决它:
_jsonObj.hotspots[0] = {};
_jsonObj.hotspots[0].id = id;
_jsonObj.hotspots[0].xval = x;
_jsonObj.hotspots[0].yval = y;
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 使用 javascript 打开新的浏览器窗口时出错
- 用javascript在html显示列表中显示新成员
- Javascript映射对象成员以返回新的扁平对象
- CakePHP错误:在非对象上调用成员函数get(),使用cakejavascript助手时出错
- 尝试使用HtmlUnit分析成员应用程序时出错
- window.open在单击按钮打开新窗口时出错
- 在Spring.message属性中添加新行时出错
- 扩展成员应用程序,包括新的路线,现在没有任何渲染
- 为什么在访问一个新对象的成员之前将其括在括号中
- 乘以数组成员得到一个新数组
- 尝试创建新元素时出错
- 当用户创建新帖子时,张贴到墙上时出错
- 创建新记录并使用成员数据提交事务
- IE11投掷'未找到成员'处理SVG时出错
- 数据表 使用 destroy() 时出错:无法在 'Node' 上执行 'insertBefore':要在其之前插入新节
- 下拉到新标签时手风琴会出错
- 向JSON添加新成员时出错
- 在为新成员指定值时使用现有特性
- 使用window.open打开新窗口时出错