将嵌套JSON数据发送到服务器的可能方法 - extjs 4.2.x

时间:2014-05-19 14:07:48

标签: json extjs extjs4.2

我有以下的JOSN数据。

我无法弄清楚在POST方法中将此数据发送到服务器的方式是什么。

在UI中,让我们说我有一个表格,我有一个组合框国家和两个多选网格展览位置事实详情(JSON商店)和一个保存按钮。 当我点击创建按钮时,我必须以下面的格式发送数据。因为我已经使用SOAP和其他一些UI技术创建了这个功能。现在我只想使用REST JSON和Extjs来做同样的事情。

请建议我将这些数据发送到服务器的一些方法。

{
  "NewStoreReportReq":{
      "countryID":"170",
      "countryName":"COLOMBIA",
       "Exhibitions":[
          {
            "exhibitionID":"1004"
          },
          {
            "exhibitionID":"1007"
          }
        ]
      ,
        "Locations":[
          {
            "locationID":"70"
          }
        ]
      ,
        "FactsDetails":[
          {
            "factID":"22"
          },
          {
            "factID":"23"
          },
          {
            "factID":"24"
          }
        ]

    }
}

1 个答案:

答案 0 :(得分:0)

//在这里,您将构建复杂对象,从网格或任何其他视图中获取数据

var myComplexObject = {
        "NewStoreReportReq": {
            "countryID": "170",
            "countryName": "COLOMBIA",
            "Exhibitions": [
                {
                    "exhibitionID": "1004"
                },
                {
                    "exhibitionID": "1007"
                }
            ],
            "Locations": [
                {
                    "locationID": "70"
                }
            ],
            "FactsDetails": [
                {
                    "factID": "22"
                },
                {
                    "factID": "23"
                },
                {
                    "factID": "24"
                }
            ]
        }
    }

//在这里你将json编码你的对象

var jsonObject = Ext.encode(myComplexObject);

//在这里,您将向服务器执行Ajax请求...

Ext.Ajax.request({
    url: '../SomeServlet',
    method: 'POST',          
    params:{
        'jsonObject': jsonObject
    },
    //here you can handle the response of the server
    callback: function (opts,success,response){
         var serverResponse = Ext.decode(response.responseText);
         // the property message has to be returned in json format
         Ext.Msg.alert(serverResponse.message);
        }

});

假设您正在使用java和servlet(是的,我知道),您必须接收类似String json = request.getParameter("jsonObject");之类的对象,然后使用像Jackson这样的库将该json转换为Java对象。

最好的问候。