使用GSON库获取JSON密钥值

时间:2017-03-08 21:36:09

标签: java json spring-mvc gson

我正在尝试从我的表单中获取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();

任何人都可以帮我解决这个问题。谢谢。

1 个答案:

答案 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.我想你需要的是什么。