создать запись для вложенного элемента json - PullRequest
0 голосов
/ 27 апреля 2011

Теперь у меня есть следующие данные json. Я хочу создать запись на основе этого обряда. Теперь у меня есть следующая структура для создания записи, но я не знаю, как бы я поместил CONTACT_INFO как вложенный элемент

Примечание: я непосредственно читаю значения из GRID (но из сетки я не получаю вложенный элемент CONTACT_INFO и затем хочу создать запись)

RECORD

var record=  Ext.data.Record.create([

                { name: 'CANDI_SR_NO'}, 
                { name: 'CANDI_NAME'}, 
                { name: 'CANDI_CASTE_BAR'},  
                { name: 'CANDI_IS_NRI'},  
                { name: 'CANDI_CASTE'},  
                { name: 'CANDI_SUB_CASTE'},  
                { name: 'CANDI_STATUS'},  
                { name: 'CANDI_AGE'},  
                { name: 'CANDI_HEIGHT'},  
                { name: 'CANDI_NATIVE_PLACE'},  
                { name: 'CANDI_EDUCATION'},  
                { name: 'CANDI_DESIGNATION'},  
                { name: 'CANDI_COMPANY'},  
                { name: 'CANDI_EMAIL_1'},               
                { name: 'CANDI_EMAIL_2'},
                { name: 'CANDI_EMAIL_3'},
                { name: 'CON_L_1'},  
                { name: 'CON_L_2'},  
                { name: 'CON_L_3'},  
                { name: 'CON_M_1'},  
                { name: 'CON_M_2'},  
                { name: 'CON_M_3'},  
                { name: 'CANDI_SALARY'},                        
                { name: 'CANDI_COMMENT'},

                    ]);

JSON

[
  {
    "CANDI_SR_NO": "12",
    "CANDI_NAME": "XYZ",
    "CANDI_CASTE_BAR": false,
    "CANDI_IS_NRI": "false",
    "CANDI_CASTE": "RAS",
    "CANDI_SUB_CASTE": "",
    "CANDI_STATUS": "",
    "CANDI_AGE": "",
    "CANDI_NATIVE_PLACE": "",
    "CANDI_EDUCATION": "",
    "CANDI_DESIGNATION": "",
    "CANDI_COMPANY": "",
    "CONTACT_INFO": 
      {
        "CANDI_EMAIL_1": "asdf",
        "CANDI_EMAIL_2": "",
        "CANDI_EMAIL_3": "",
        "CON_L_1": "asdf",
        "CON_L_2": "",
        "CON_L_3": "",
        "CON_M_1": "",
        "CON_M_2": "",
        "CON_M_3": ""
      }
    ,
    "CANDI_SALARY": "",       
    "CANDI_COMMENT": ""
  }
]

Я хочу отправить данные в формате json, как указано выше, но как только я нажму кнопку отправки формы.поэтому я спрашиваю, как создать запись в extjs, чтобы я мог отправить вложенный элемент внутри json

1 Ответ

0 голосов
/ 27 апреля 2011

Вы, вероятно, ищете mapping.

Как в:

{ name: 'CANDI_EMAIL_1', mapping: 'CONTACT_INFO.CANDI_EMAIL_1'},

Для записи вам также необходимо обновить toHashфункция Ext.data.JsonWriter, которую вы используете.По умолчанию нельзя обрабатывать вложенные объекты.

Самый простой способ - написать конкретную toHash функцию, а не обобщенную.Имея Ext.data.Record вот так:

var rec = new record({
  ...
  'CANDI_EMAIL_1': 'foo@example.com'
  ...
});

Затем вы будете использовать JsonWriter следующим образом:

CandiWriter = Ext.extend(Ext.data.JsonWriter, {
  toHash: function(rec) {
    return {
      CONTACT_INFO: {
        CANDI_EMAIL_1: rec.get('CANDI_EMAIL_1')
      }
    };
  }
})

Вы можете написать обобщенный, если вы собираетесь много делать, но я ожидаю, что это займет больше времени, чем просто поддержка специализированного JsonWriter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...