我正在尝试从我的表单中获取JSON对象。
请在下面找到JSON:
[{"id":["4"]},{"Flap":["NA"]}]
所以我使用隐藏属性将值保存到ModelForm中的JsonObject(来自Gson库)中。当我从控制器调用此对象时,我无法按键获取值。
在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的形式收集已检查值的信息并将其保存在&#34; jsonObjct&#34;在MyForm中并尝试使用以下方法检索控制器中的值:
myForm.getJsonObjct();
任何人都可以帮我解决这个问题。谢谢。
答案 0 :(得分:1)
首先,这个[{"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.我想你需要的是什么。