Java 使用GSON库获取JSON键值

Java 使用GSON库获取JSON键值,java,json,spring-mvc,gson,Java,Json,Spring Mvc,Gson,我试图从我的表单中获取JSON对象 请在下面找到JSON: [{"id":["4"]},{"Flap":["NA"]}] 因此,我使用隐藏属性将值保存到模型表单中的JsonObject(来自Gson库)中。当我从控制器调用这个对象时,我无法通过键获取值 在jsp中: <form:form modelAttribute="myForm" action="/action"> <input type="hidden" name="jsonObject" id="jsonObj" v

我试图从我的表单中获取JSON对象

请在下面找到JSON:

[{"id":["4"]},{"Flap":["NA"]}]
因此,我使用隐藏属性将值保存到模型表单中的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>
在MyForm.Java中:

private JsonObject jsonObjct;
//getters and setters for jsonObjct
我正在以json的形式收集检查值的信息,并将其保存在MyForm的“JSONObject”中,并尝试使用以下方法在控制器中检索该值:

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。我想这就是你需要的。

分享你的代码?嗨@Coder我已经添加了代码。很抱歉,前面不清楚。如何将JSON发送到java对象
MyForm
?你发送的格式是什么?@Coder应该是这种格式。[{“id”:[“4”]},{“Flap”:[“NA”]}]。我不知道它是否保存在JSONObject中,但我无法使用controller中的值。我所说的格式是指它是如何传递给java对象的?您的代码没有显示将数据设置为object的任何方面。谢谢。:)@布科巴阿迪尔酒店
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));
    }
}