Ответ JSON с различными типами данных

#json #extjs

#json #extjs

Вопрос:

У меня есть ответ JSON, подобный этому

 "{"total":1,"userBeanId":300,"list":[{"errors":[],"success":true,"liferayUserId":31503,"companyId":null,"groupId":null,"locale":null,"status":null,"liferayUserGroupId":null,"idProvider":null,"idClient":null,"userType":4,"userId":200,"email":"xpto@gmail.com","telefone":"999999999","nome":"MYNAME","role":"MY_ROLE","perfil":"Administrator","lastName":null}],"success":true}"
 

и у меня есть хранилище, которое считывает содержимое списка, например

 "Ext.define('

MYPROJECT.store.Profiles', {
    extend: 'Ext.data.Store',
    model: 'MYPROJECT.model.Profile',
    autoLoad: true,
    pageSize: 10,
    remoteSort: true,
    remoteFilter: true,
    proxy: {
        type: 'ajax',
        api: {
            read: '/delegate/rlapi-common/profile/list'
        },
        enablePaging: true,
        reader: {
            type: 'json',
            root: 'list',
            successProperty: 'success'
        }
    }
});"
 

и хранилище успешно «считывает» список. Тем не менее, я хотел бы также иметь доступ к полю «userBeanId». Есть ли какой-либо способ получить к нему доступ с помощью этого хранилища (изменив корень на что-то на верхнем уровне)? Меня это смущает, поскольку хранилище «сопоставляется» с моделью, а идентификатор пользователя не вписывается в модель.

Модель:

 Ext.define('MYPROJECT.model.Profile', {
    extend: 'Ext.data.Model',
    fields: [
             'userId',
             'nome',
             'telefone',
             'email',
             'role',
             'perfil'
            ],
});
 

Комментарии:

1. «Я бы хотел также иметь доступ к полю «userBeanId»» откуда, плюс можете ли вы также показать свою модель

2. Сообщение обновлено с помощью модели

Ответ №1:

Вы можете store.proxy.reader.rawData получить доступ к самому последнему загруженному JSON. Как вы предположили, не имеет смысла быть частью модели, но вы можете прочитать дополнительную метаинформацию через reader.

Комментарии:

1. Спасибо. Для людей, которые разделяют те же сомнения, для получения дополнительной информации, пожалуйста, обратитесь к all-docs.info/extjs4/docs/source/JsonReader.html .

2. В моем случае var userBeanId = store.proxy.reader.RawData.userBeanId;