如何配置extjs reader读取这个json? [英] how to configure extjs reader to read this json?

查看:143
本文介绍了如何配置extjs reader读取这个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆