【发布时间】:2018-02-07 20:17:33
【问题描述】:
我将一个数组放入发送到 java webservice 的对象中(请参阅 javascript.js -> sendDataToWebservice())。 Web 服务处理数组(通过 gson)并将其作为字符串保存在 sql 数据库中(参见 webservice.java -> handleDataFunction())。当我想接收数组时,数据未正确转换回数组(请参阅 javascript.js -> receiveDataFromWebservice())。数据将被转换为这样的字符串,而不是数组:“[”item1”,”item2]”。
我需要解析数组吗?我认为问题是在两者之间的某个地方添加了引号,因此数据被识别为字符串而不是数组。
提前致谢!
javascript.js
var myArray = new Array();
function sendDataToWebservice() {
// Create the JSON to send to the webservice
var jsonData = {
"action": actionName,
"array": myArray
};
// Send the data
$.ajax({
url: "/xaction/",
type: 'POST',
data: JSON.stringify(jsonData),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: true,
success: function (msg) {
// ...
}
});
}
function reveiveDataFromWebservice() {
// Receive the data
jQuery.getJSON("/webservice/getdata", function (returningData) {
if (returningData.success) {
array= returningData.array;
}
});
webservice.java
private void handleDataFunction(inputData) {
// Create a map for the parameters
MapSqlParameterSource namedParameters = new MapSqlParameterSource();
// Create the query string
String query = "my sql query";
// Here I want to retrievethe array as a String to store it in the db
JsonArray jsonArray = currentAntwortFeld.get("array").getAsJsonArray();
// Add the array as an String to the sql parameters
namedParameters.addValue("arraydbfield", jsonArray.toString())
// Execute the sql query
factory.executeUpdate(query, namedParameters);
}
【问题讨论】:
标签: javascript java arrays json gson