将嵌套 JSON 数据发送到服务器的可能方法 - extjs 4.2.x
Posted
技术标签:
【中文标题】将嵌套 JSON 数据发送到服务器的可能方法 - extjs 4.2.x【英文标题】:Possible ways to send nested JSON data to server - extjs 4.2.x 【发布时间】:2014-05-19 14:07:48 【问题描述】:我有 JOSN 数据如下。
我无法弄清楚以 POST 方法将此数据发送到服务器的方式是什么。
在 UI 中,假设我有一个表单,其中有一个组合框 country 和两个多选网格 Exhibition、Location 和 Fact Details(JSON 存储)和一个 Save 按钮。 当我点击创建按钮时,我必须以以下格式发送数据。因为我已经使用 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"
]
【问题讨论】:
到目前为止你尝试过什么?您想将其作为 Ext.Ajax.request() 执行,作为商店更新的一部分,还是其他?作为 POST 的一部分发送 JSON 数据非常简单,但我们需要知道您需要如何操作。 【参考方案1】://在这里你将构建你的复杂对象,从你的网格或任何其他视图中获取数据
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 对象。
最好的问候。
【讨论】:
感谢您的回复。正如我有展览,网格中的位置数据。你能告诉我如何从网格中获取这些数据并创建上面的复杂数据吗? 您需要从 ExtJs 控制器监听 itemClick 事件,该事件发送记录的内容,如您在此处看到的:docs.sencha.com/extjs/4.2.2/#!/api/…以上是关于将嵌套 JSON 数据发送到服务器的可能方法 - extjs 4.2.x的主要内容,如果未能解决你的问题,请参考以下文章
使用 POST 请求 iOS Swift 3 发送嵌套 JSON
生成的json对象,用express发送post请求到服务端,JSON.stringify后保存到服务器后数据格式变得很奇怪?