我正在做的是:
1.从ajax响应(json格式)中获取值,用于列出
response = {"categories":[{"name":"General","id":"6305","pop":"show when clicked"},{"name":"Navigation","id":"6043","pop":"show when clicked"},{"name":"New","id":"6051","pop":"show when clicked"},{"name":"Time","id":"6117","pop":"show when clicked"},{"name":"Reesh","id":"6207","pop":"show when clicked"}]}
2。我将解析json并将其存储在类似的对象中
例如:
object= {6305:{"name":"General","id":"6305","pop":"show when clicked"},
6043:{"name":"Navigation","id":"6043","pop":"show when clicked"},
6051:{"name":"New","id":"6051","pop":"show when clicked"},
6117:{"name":"Time","id":"6117","pop":"show when clicked"},
6207:{"name":"Reesh","id":"6207","pop":"show when clicked"}};
我之所以这么做是因为我可以使用id 获取数据
例如:object[6305]会给我数据。
3。这样,当数据库发生更改时,我可以检索数据,也可以使用id更改对象中的值。
例如:object[6350].pop="已更改";
请告诉我:
-->这是正确的方法还是我可以用一种更简单或有效的方式?
-->我是否可以按原样存储json响应并按原样解析数据?如果是,请举例说明
object
:
function getObject(id) {
for (var i=0; i<response.categories.length; i++)
if (response.categories[i].id == id)
return response.categories[i];
return null;
}
但是,如果您经常需要通过对象的id来访问对象,那么这个函数会很慢。像以前那样创建查找表不会产生太多内存开销,但会使检索数据的速度更快。
BTW:您的标题问题"将数据保存为对象或json"令人困惑。将被操纵的对象序列化回JSON是没有意义的,因为您总是使用解析后的对象。当然,如果您只需要操作JSON字符串,并且知道该做什么,(简单)字符串操作可能比解析、操作和字符串化更快。