Javascript JSON的怪异需要更优雅的方法
基本上,我正在处理一个包含四种不同JSON“thingies”(对象、数组)的页面。请原谅我缺乏恰当的术语 当我得到JSON时,它作为一个包含一堆子对象的对象出现,每个“子对象”如下所示:Javascript JSON的怪异需要更优雅的方法,javascript,json,Javascript,Json,基本上,我正在处理一个包含四种不同JSON“thingies”(对象、数组)的页面。请原谅我缺乏恰当的术语 当我得到JSON时,它作为一个包含一堆子对象的对象出现,每个“子对象”如下所示: "token":"government", "title":"Government", "isSelected":false, "type":"CATEGORY", "subtype":"INDUSTRY", "count":12 因此,第一个任务是循环遍历每个JSON并填充一个充满复选框的框,使用titl
"token":"government",
"title":"Government",
"isSelected":false,
"type":"CATEGORY",
"subtype":"INDUSTRY",
"count":12
因此,第一个任务是循环遍历每个JSON并填充一个充满复选框的框,使用title
作为标签,使用isSelected
指示选中状态。到目前为止,一切顺利
顺便说一句,在某个地方,我拿起了一个JS脚本,它检查一个对象是JSON还是数组,根据那个“快速脏”测试,我的对象是数组。或者一个数组对象(你知道,一个是用[]
创建的,另一个是用{}
创建的)
无论如何,当最终用户选中和取消选中复选框时,我需要跟踪所有内容,并立即将更改发送回服务器(当用户单击“完成”按钮时)。疯狂的是,通过循环对象,我能够将isSelected
值更改为true
。只是不要返回到false
for(var i = 0; i < $array.length; i++){
$array[z].isSelected = true;
}
for(变量i=0;i<$array.length;i++){
$array[z].isSelected=true;
}
当我处理所有这些问题时,也许我起得太晚了,但是使用相同的方法,我可以不更改$array[z]。当取消选中复选框时,我将选为假
最后,我将JSON“thingy”转换为字符串,搜索并替换相应的值,然后将字符串转换回对象。现在一切都正常了,但我觉得好像我刚刚用光了一卷胶带,本来可以把这些碎片很好地拼合在一起
问题:我是否完全错过了机会?是否有一种简单的方法可以更改JSON对象的值
如果是这样,你能给我指出正确的方向吗?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",
}
};
在for循环中使用i作为索引,但使用z访问数组元素。如果你剪切并粘贴代码,这就是你的问题所在。如果你知道它是一个对象数组,为什么你一直称它为东西
?这是你想要做的吗?