ExtJS: как сопоставить поля хранилища со свойствами JSON?

У меня есть следующие данные JSON :

{
  "disclaimer": "Exchange rates provided for informational purposes only and do not constitute financial advice of any kind. Although every attempt is made to ensure quality, no guarantees are made of accuracy, validity, availability, or fitness for any purpose. All usage subject to acceptance of Terms: https://openexchangerates.org/terms/",
  "license": "Data sourced from various providers; resale prohibited; no warranties given of any kind. All usage subject to License Agreement: https://openexchangerates.org/license/",
  "timestamp": 1475110853,
  "base": "USD",
  "rates": {
    "AED": 3.672983,
    "AFN": 66.5538,
    "ALL": 122.0421,
    "AMD": 473.5925,
    "ANG": 1.7763,
    "AOA": 165.571834,
    "ARS": 15.3169,
    "AUD": 1.299338,
    "AWG": 1.792667,
    "YER": 250.130999,
    "ZAR": 13.61321,
    "ZMK": 5252.024745,
    "ZMW": 9.831204,
    "ZWL": 322.387247
  }
}

И я определил свою модель следующим образом:

Ext.define('CurrencyConvert.model.CurrencyCode', {
    extend : 'Ext.data.Model',
    fields : [
        {
            name : 'code',
            value : 'string'
        },
        {
            name : 'rate',
            value : 'float'
        }
    ]
});

Так что я могу иметь код валюты (т. е. «USD») и курс. Но проблема в том, что код валюты сам по себе является именем свойства фактического курса; так как бы я создал свой магазин, чтобы получить и код, и курс в моей модели ?

Бывший:
Для"AED": 3.672983, я хочу codeзначение, чтобы держать » AED » и rateполе, чтобы держать 3.672983.

2 ответа

  1. Вы можете сделать так:

    
     Доб.определение ('CurrencyConvert.модель.CurrencyCode', {
     extend : 'Ext.данные.Модель',
     поля : [
     {
     название: 'code',
     значение: 'string',
     преобразование: функция (v, rec){
     = = = Добавьте Свою Логику Здесь ===
     }
     },
     {
     название: 'rate',
     значение: 'float'
     преобразование: функция (v, rec){
     = = = Добавьте Свою Логику Здесь ===
     }
     }
     ]
     });
    
    
  2. Ext.define('CurrencyConvert.model.CurrencyCode', {
        extend : 'Ext.data.Model',
        fields : [
            {
                name : 'code',
                value : 'string'
            },
            {
                name : 'rate',
                value : 'float', 
                convert : function(value, record) {
                    return jsonData.rates[record.get('code')]
                }
            }
        ]
    });