java - 使用 GSON 库获取 JSON 键值

标签 java json spring-mvc gson

我正在尝试从表单中获取 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/

相关文章:

java - 如何访问dubbo Main中运行的spring mvc项目

java - 获取非重写的 equals 方法来使用 hashCode

java - Java 5“Executor”的正确发音是什么?

java - 如何修复firefox浏览器中的ajax调用,但在chrome浏览器中工作正常

php - 允许未设置片段的 JSON 选项

java - 将图像保存为 BLOB 时如何在 JSP 中以文本形式显示它?

java - 如何将 Maven 快照部署到 oss.jfrog.org?返回代码 : 405

java - 如何让回车键和提交按钮有相同的ActionEvent?

javascript - 解析(输入)为 JSON 字符串

java - 简单的 SpringMVC 3 登录不起作用