我正在尝试从表单中获取 JSON 对象。
请找到下面的 JSON:
[{"id":["4"]},{"Flap":["NA"]}]
因此,我使用隐藏属性将值保存到 ModelForm 中的 JsonObject(来自 Gson 库)中。当我从 Controller 调用此对象时,我无法通过键获取值。
在jsp中:
<form:form modelAttribute="myForm" action="/action">
<input type="hidden" name="jsonObject" id="jsonObj" value=""/>
<input type="submit" value="Submit" onclick="function getjson()"/>
</form:form>
在js中,我收集所有复选框并在提交值时以Json形式保存信息。
在 JS 中:
function getjson(){
var json = [];
var checkedBoxes = $('input[name="checkedList"]:checked').map(function() {
return this.value;
}).get();
var checkedBoxes1 = $('input[name="checkedList1"]:checked').map(function() {
return this.value;
}).get();
json.push({"id":checkedBoxes});
json.push({"Flap":checkedBoxes1});
document.getElementById("jsonObj").value = json;
}
在 MyForm.Java 中:
private JsonObject jsonObjct;
//getters and setters for jsonObjct
我正在以 json 的形式收集检查值的信息,并将其保存在 MyForm 中的“jsonObjct”中,并尝试使用以下方法检索 Controller 中的值:
myForm.getJsonObjct();
任何人都可以帮我解决这个问题吗?提前致谢。
最佳答案
首先这个[{"id":["4"]},{"Flap":["NA"]}]
是一个jsonArray。如果你可以使用 org.json
jar 会更好而且非常简单。
import org.json.JSONArray;
public class GsonExample {
public static void main(String[] args) {
String jsonString="[{\"id\":[\"4\"]},{\"Flap\":[\"NA\"]}]";
JSONArray arr= new JSONArray(jsonString);
System.out.println(arr.getJSONObject(0).getJSONArray("id").get(0));
}
}
输出是 4。我猜这就是你所需要的。
关于java - 使用 GSON 库获取 JSON 键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42682358/