添加元素到Javascript对象不能使用JSON格式
Adding element to Javascript object does not work using JSON format
我创建了一个像这样的js对象:
var JSONObject = {};
和一个函数创建一个元素并将其添加到JSONObject
:
function addShape(JSONObject, shapeStruct)
{
var sh = "shape"+shapeStruct.id.toString();
JSONObject.sh={
"id": shapeStruct.id,
"x1": shapeStruct.x1,
"x2": shapeStruct.x2,
"y1": shapeStruct.y1,
"y2": shapeStruct.y2
};
}
这个函数在一个单独的文件中。
我使用:
shapeId++;
singleShapeStruct = {"id":shapeId, "x1":oldX, "x2":correctedX, "y1":oldY, "y2":yCanvas};
addShape(JSONObject, singleShapeStruct);
alert(JSONObject.shape0.x1);
警报没有给出任何东西。
谢谢你的帮助
当你给JSONObject.sh
赋值时,它不会使用变量sh
。属性的名称将是"sh"
,而不是变量sh
的值。
要使用变量命名属性,请使用括号语法:
JSONObject[sh] = ...
由于变量具有实际的键,因此需要使用括号符号而不是点符号作为成员操作符
function addShape(JSONObject, shapeStruct)
{
var sh = "shape"+shapeStruct.id.toString();
JSONObject[sh]={
"id": shapeStruct.id,
"x1": shapeStruct.x1,
"x2": shapeStruct.x2,
"y1": shapeStruct.y1,
"y2": shapeStruct.y2
};
}
这里的JSONObject
不包含sh
属性。
你必须将JSONObject
.sh
对象初始化为
JSONObject[sh] =
{
"id" : .....
"x1" : .....
.
}
使用方括号标记变量value作为名称(动态)..不是通过点运算符。点运算符需要初始化属性的静态名称
相关文章:
- 在HTML页面上将URL解析为可读的json格式
- 为DataTables aoColumnDefs创建JavaScript数组(JSON格式)
- 从Particle Photon Webhook到Azure的JSON格式
- json格式的国家数据到层次数据
- 从javascript调用C#Web服务并使用它(json格式)
- HTML表的JSON格式
- 如何将HTML表单(JSON格式)中的数据分配给变量
- Neo4j结果(JSON格式)创建D3树图
- 高图表数据导入 JSON - 格式
- 更改代码以读取不同的 JSON 格式
- JSON 格式问题
- 将JavaScript字典转换为JSON格式
- 将 XML 数据转换为 json 格式 AngularJS
- KendoDatePicker 无法识别从 Web 服务以 JSON 格式返回的日期
- 在表单提交时设置JSON格式
- AngularJS ng重复json格式
- 如何将json格式的数组数据从jquery返回到html
- 为什么 JSON.parse 无法检测参数是否已采用 JSON 格式
- 如何使用jQuery从表中以JSON格式发布数据
- json格式作为cordova或phonegap ios插件的参数