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
获取数据ex:object [6305]会给我数据。
3 。因此我可以检索数据,并在db中发生更改时使用id更改对象中的值。
ex:object [6350] .pop =“changed”;
请告诉我:
- >这是正确方法还是我可以用更简单或有效的方式 ?
- >我是否可以按原样存储json响应并按原样解析数据?如果是这样请以示例解释。
答案 0 :(得分:0)
是的,当然您不需要构建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字符串,并且确切地知道该做什么,那么(简单)字符串操作可能比解析,操作和字符串化更快。