【问题标题】:Get JSON Key values using GSON library使用 GSON 库获取 JSON 键值
【发布时间】:2017-07-29 16:07:14
【问题描述】:

我正在尝试从我的表单中获取 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 的形式收集检查值的信息并将其保存在 MyForm 中的“jsonObjct”中,并尝试使用以下方法在我的控制器中检索值:

myForm.getJsonObjct();

谁能帮我解决这个问题。在此先感谢。

【问题讨论】:

  • 分享你的代码?
  • 嗨@Coder 我已经添加了代码。抱歉之前没有说清楚。
  • JSON是如何发送到java对象MyForm的?您发送的格式是什么?
  • @Coder 它将采用这种格式。 [{"id":["4"]},{"Flap":["NA"]}]。我不知道它是否保存在 jsonObjct 但我无法使用控制器中的值。
  • 格式我的意思是它是如何传递给java对象的?您的代码没有显示将数据设置为对象的任何方面

标签: java json spring-mvc gson


【解决方案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。我猜这就是你所需要的。

【讨论】:

  • 谢谢。 :) @boukobba adil
猜你喜欢
  • 2020-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多