Javascript 将JSON解析到Extjs存储
我使用ExtJS4请求id-label格式的数据(在我的例子中是id'-'rdfs:label') 我有复杂的JSON响应结构:Javascript 将JSON解析到Extjs存储,javascript,json,parsing,extjs,extjs4,Javascript,Json,Parsing,Extjs,Extjs4,我使用ExtJS4请求id-label格式的数据(在我的例子中是id'-'rdfs:label') 我有复杂的JSON响应结构: [ { "@" : "msg:M_8CE1C07B1CFC469", "a" : "msg:Message", "msg:in-reply-to" : "msg:M4e32b0b7e37ae", "msg:sender" : "pacahon", "msg:reciever" : "Ennoia:DocumentTypesStore.listTemplates", "
[
{
"@" : "msg:M_8CE1C07B1CFC469",
"a" : "msg:Message",
"msg:in-reply-to" : "msg:M4e32b0b7e37ae",
"msg:sender" : "pacahon",
"msg:reciever" : "Ennoia:DocumentTypesStore.listTemplates",
"msg:result" : [
{
"@" : "user_onto:881fc0a8-2912-4964-86c6-adad4a713eb8",
"dc:creator" : "auth:user1",
"dc:identifier" : "881fc0a8-2912-4964-86c6-adad4a713eb8",
"rdfs:label" : "undefined|ru",
"rdfs:subClassOf" : ["user_onto:881fc0a8-2912-4964-86c6-adad4a713eb8_v_1_f_0","user_onto:881fc0a8-2912-4964-86c6-adad4a713eb8_v_1_f_1","user_onto:881fc0a8-2912-4964-86c6-adad4a713eb8_v_1_f_2","user_onto:881fc0a8-2912-4964-86c6-adad4a713eb8_v_1_f_3","docs:Document"]
},
{
"@" : "user_onto:ef54ecef-8e19-41ea-b1cc-2bc4ebb40877",
"dc:creator" : "auth:user1",
"dc:identifier" : "ef54ecef-8e19-41ea-b1cc-2bc4ebb40877",
"rdfs:label" : "type1|ru",
"rdfs:subClassOf" : ["user_onto:ef54ecef-8e19-41ea-b1cc-2bc4ebb40877_v_1_f_0","user_onto:ef54ecef-8e19-41ea-b1cc-2bc4ebb40877_v_1_f_1","user_onto:ef54ecef-8e19-41ea-b1cc-2bc4ebb40877_v_1_f_2","user_onto:ef54ecef-8e19-41ea-b1cc-2bc4ebb40877_v_1_f_3","docs:Document"]
}],
"msg:status" : "ok",
"msg:reason" : "запрос выполнен: авторизованны все найденные субьекты : 2"
}
]
我想在我的商店中阅读此json并获得如下内容:
[{"@" : "user_onto:881fc0a8-2912-4964-86c6-adad4a713eb8"
"rdfs:label" : "undefined|ru"},
{"@" : "user_onto:ef54ecef-8e19-41ea-b1cc-2bc4ebb40877"
"rdfs:label" : "type1|ru"}]
请注意,我不想更改此JSON响应(删除或添加大括号)。我使用API文档解决了我的问题(Ext.data.reader.reader): 然后,我为我的JsonStore添加响应作为模型:
proxy: {
type: 'ajax',
url: './controller.php?class=DocumentTypesStore&action=get&method=listTemplates',
method: "POST",
actionMethods: {read: 'POST'},
reader: {
type: 'json',
root: [],
idProperty: '@'
}
}
我现在可以读取值了:
jsonstore.on('load', function(){
var response = jsonstore.first();
console.log(response.get('id'));
response.messages().each(function(message) {
console.log(message.get('id'));
});
});
嗯,问题是?对不起,我不明白重点
jsonstore.on('load', function(){
var response = jsonstore.first();
console.log(response.get('id'));
response.messages().each(function(message) {
console.log(message.get('id'));
});
});