如何配置extjs reader读取这个json? [英] how to configure extjs reader to read this json?
问题描述
我已经配置了extjs store来加载来自useragentstring.com api的数据,这个api返回数据就像这样
{ AGENT_TYPE : 浏览器, AGENT_NAME: 歌剧, AGENT_VERSION: 9.70, 操作系统类型: Linux的, OS_NAME: Linux的, os_versionName: , os_versionNumber: ,os_producer:,os_producerURL:,linux_distibution:Null,agent_language:英语 - 美国,agent_languageTag:en-us}
Ext.define('Oms.model.Userinfo',{
extends:'Ext.data.Model',
fields:['agent_type','agent_name','agent_version' 'os_type','os_name']
});
Ext.define('Oms.store.Userinfo',{
extends:'Ext.data.Store',
model:'Oms.model.Userinfo',
proxy:{
type:'jsonp',
reader:{
type:'json',
root:''
}
}
});
此商店抛出错误
< img src =https://i.stack.imgur.com/TCE9u.jpgalt =enter image description here>
也许这是因为有没有根本在这个json?
任何想法如何读取这个输出和加载存储正确?
/ p>
当我没有设置 root
或者我设置为 undefined
。
您还可以扩展 Ext.data.reader。 Json
根据您的需要调整响应。示例:
Ext.define('Ext.data.reader.JsonPWithoutRoot',{
extend:'Ext。 data.reader.Json',
read:function(response){
return this.callParent([{root:response}]);
},
root:'root '
});
然后在代理定义它如下:
proxy $ {
url:'http:// localhost / ext4 / data3.php',
reader:Ext.create('Ext.data.reader.JsonPWithoutRoot',{})
}
I've configured extjs store to load data from useragentstring.com api, this api return data like this
{"agent_type":"Browser","agent_name":"Opera","agent_version":"9.70","os_type":"Linux","os_name":"Linux","os_versionName":"","os_versionNumber":"","os_producer":"","os_producerURL":"","linux_distibution":"Null","agent_language":"English - United States","agent_languageTag":"en-us"}
Ext.define('Oms.model.Userinfo', {
extend : 'Ext.data.Model',
fields : ['agent_type', 'agent_name', 'agent_version', 'os_type', 'os_name']
});
Ext.define('Oms.store.Userinfo', {
extend : 'Ext.data.Store',
model : 'Oms.model.Userinfo',
proxy: {
type : 'jsonp',
reader : {
type: 'json',
root: ''
}
}
});
this store throws a error
maybe this happen because there is no root in this json ?
any idea how to read this output and load store correctly?
Regards
It works for me when I don't set root
or when I set it to undefined
.
You may also extend Ext.data.reader.Json
to adjust response to your needs. Example:
Ext.define('Ext.data.reader.JsonPWithoutRoot', {
extend: 'Ext.data.reader.Json',
read: function(response) {
return this.callParent([ { root: response } ]);
},
root: 'root'
});
And then in proxy define it like this:
proxy: {
type: 'jsonp',
callbackKey: 'method',
url: 'http://localhost/ext4/data3.php',
reader: Ext.create('Ext.data.reader.JsonPWithoutRoot', {})
}
这篇关于如何配置extjs reader读取这个json?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!