настройка формата json, отправляемого по форме extjs - PullRequest
1 голос
/ 08 сентября 2011

У меня есть вопрос.

Мне нужно отправить формат json в мой бэкэнд-сервис. Это требует чего-то, что мне не удалось создать. Что я отправляю с формой это:

{
"jobs": {
    "name": "dsvs",
    "jobType": "CUSTOM",
    "description": "sdvsdv",
    "tasks": "14,15,16"
}
}

но мне нужно отправить

{
"jobs": {
    "name": "dsvs",
    "jobType": "CUSTOM",
    "description": "sdvsdv",
    "tasks": [14,15,16]
}
} 

как я могу это сделать?

Это мой обработчик формы:

handler: function () {
                    var form = this.up('form').getForm();
                    var formData = Ext.encode(form.getValues());
                    Ext.Ajax.request({

                        url: ND.url + 'dna/rjs/secure/service/rest/jobs.json',
                        method: 'POST',
                        waitTitle: 'Connecting',
                        waitMsg: 'Sending data...',
                        jsonData: {
                            jobs: form.getValues()
                        }


                            });


                    })

Надеюсь, у кого-нибудь есть идея!

1 Ответ

1 голос
/ 08 сентября 2011

Вы не можете «честными» способами.

Вы можете, однако, взломать его в этом.

handler: function () {
                    var form = this.up('form').getForm();
                    var formData = Ext.encode(form.getValues());
                    formData.jobs.tasks = formData.jobs.tasks.split(',');
                    Ext.Ajax.request({

                        url: ND.url + 'dna/rjs/secure/service/rest/jobs.json',
                        method: 'POST',
                        waitTitle: 'Connecting',
                        waitMsg: 'Sending data...',
                        jsonData: {
                            jobs: formData
                        }
                   });
})

Вы не используете свой formData в своем примере, несмотря на то, что он у вас, кстати.

Это приведет к:

{
"jobs": {
    "name": "dsvs",
    "jobType": "CUSTOM",
    "description": "sdvsdv",
    "tasks": ["14","15","16"]
}
} 

Если это все еще не подходит, вы можете взломать его, вызвав parseInt для каждого значения задачи.

EDIT

Добавлено уточнение.

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