基本上,我正在开发一个包含四个不同JSON“thingies”(objetcs,数组)的页面。原谅我缺乏适当的术语。
当我获得JSON时,它作为一个带有一堆子对象的对象进入,每个“子对象”看起来像这样:
"token":"government",
"title":"Government",
"isSelected":false,
"type":"CATEGORY",
"subtype":"INDUSTRY",
"count":12
因此,第一项任务是循环遍历每个JSON并使用title
作为标签填充一个装满复选框的框,并使用isSelected
指示已检查状态。到目前为止,非常好。
[ ]
创建的,另一个用{ }
创建的)?
无论如何,当最终用户检查并取消选中复选框时,我需要跟踪所有内容并立即将更改发送回服务器(当用户单击DONE按钮时)。疯狂的是,通过循环遍历对象,我能够将isSelected
值更改为true
。 。 。只是不回false
。
for(var i = 0; i < $array.length; i++){
$array[z].isSelected = true;
}
当我处理所有这些时,也许我太迟了,但是使用相同的方法,当复选框得到de时,我可以不将$array[z].isSelected
更改为false
- 请选择。
最后,我将JSON“thingy”转换为字符串,搜索并替换相应的值,然后将字符串转换回对象。这一切现在都在运作,但我觉得好像我刚用完一卷胶带就可以通过将各个部分拼凑在一起而放在一起。
问题:我是否完全错过了这条船,是否有一种简单的方法可以更改JSON对象的值?
如果是这样,你能指出我正确的方向吗?
答案 0 :(得分:1)
JSON thingy只是javascript对象的字符串表示。
创建对象的一种方法是
var myObject = {
"myName": "AName",
"myType": "AType"
};
此对象可引用为myObject
,其中属性myObject.myName
和myObject.myType
包含值AName
和AType
。
您应该只能通过名称objName.token
objName.title
等引用对象。
如果您在尝试使用javascript解析json时遇到问题,请参考上面的结果。这样可以使您更容易访问,操作或删除对象属性中的数据。
如下所示嵌套可以引用为myObject.moreProperties.prop1
等
var myObject = {
"myName": "AName",
"myType": "AType",
"moreProperties": {
"prop1": "vaue1",
"prop2": "vaue2",
}
};