调整通过extjs形式发送的json格式 [英] adjusting json format send by extjs form

查看:203
本文介绍了调整通过extjs形式发送的json格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个问题。



我需要发送一个json格式到我的后台服务。它需要我没有设法创建的东西。我发送表单是这样的:

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

但是我需要发送的是

  {
job:{
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:'发送数据...',
jsonData:{
jobs:form.getValues()
}


});


})

我希望有人有一个想法!

解决方案

你不能以诚实的方式。



但是,您可以将其删除。

 处理程序:function(){
var form = this。向上( '形式')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:'发送数据...',
jsonData:{
jobs:formData
}
}) ;
})

您不使用您的 formData 在你的例子中,尽管如此,BTW。



这将导致:

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

如果仍然不合适,可以通过在每个任务值上调用 parseInt 来进一步破解它。 / p>

编辑



添加澄清。


I have a question.

I need to send a json format to my backend service. It requires something i haven't managed to create. What i am sending with a form is this:

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

but what i need to send is

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

how can i do this?

This is my form handler:

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()
                        }


                            });


                    })

I hope anyone has an idea!

解决方案

You can't by "honest" ways.

You can, however, hack it into that one.

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
                        }
                   });
})

You don't use your formData in your example, despite having it, BTW.

That would result in:

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

If that is still not suitable, than you can further hack it by calling parseInt on each task value.

EDIT:

Added clarification.

这篇关于调整通过extjs形式发送的json格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆