Json 通过Sencha Touch 2中的代理将数据加载到存储时自定义字段解析

Json 通过Sencha Touch 2中的代理将数据加载到存储时自定义字段解析,json,proxy,sencha-touch-2,store,data-mapping,Json,Proxy,Sencha Touch 2,Store,Data Mapping,我试图找出解析ST2存储上REST代理检索的数据的最佳方式/位置。我希望能够控制场的深度映射。数据包含的字段不映射到模型中的任何字段,我无法控制响应中接收的数据。我想有选择地映射我想要的字段,同时忽略其他字段 使用自定义代理执行此操作的最佳方法是什么?如果是这样的话,我会用什么方法来覆盖呢?您可以在模型的字段中使用和的组合 Ext.define('Dude', { extend: 'Ext.data.Model', fields: [ {

我试图找出解析ST2存储上REST代理检索的数据的最佳方式/位置。我希望能够控制场的深度映射。数据包含的字段不映射到模型中的任何字段,我无法控制响应中接收的数据。我想有选择地映射我想要的字段,同时忽略其他字段


使用自定义代理执行此操作的最佳方法是什么?如果是这样的话,我会用什么方法来覆盖呢?

您可以在模型的字段中使用和的组合

Ext.define('Dude', {
    extend: 'Ext.data.Model',
    fields: [
        {
            name: 'name',
            mapping: 'dude.name',
            convert: function(value, record) {
                return value.replace('>', '');
            }
        }
    ]
});

我可以通过为模型类中的每个字段设置映射属性来解决这个问题。如果您使用的是JSON代理,那么只需指定包含该值的对象的JSON路径即可

Ext.define('MyApp.model.Category', {
    extend: 'Ext.data.Model',

    config: {
        idProperty: 'id',
        fields: [
            { name: 'id', type: 'int' },
            { name: 'category_title', type: 'string' },
            { name: 'category_description', type: 'string' },
            { name: 'category_parent', type: 'int', mapping: 'category_parent.id' }
        ]

});

我错过了转换功能。正是我想要的。谢谢。