1

嗨,我有以下格式的 JSON

{
"elements":[
        list1,
        list2,
        list3
    ]
}

其中 list1,list2,list3 都是 javascript 数组。

现在我可以将它从一个 javascript 文件传递​​给我的控制器(我正在使用 spring mvc)。现在我想使用正在发送的 JSON 中的数据。我想将此映射到模型类并将其返回另一个 jsp 页面。我还没有创建模型。我怎样才能做到这一点?

请帮忙。提前致谢。

4

4 回答 4

2

使用Gson,您首先需要创建一个表示您的 JSON 数据的类结构,因此您可以像这样创建一个类:

public class Response {
    private List<List<YourObject>> elements;
    //getter and setter
}

请注意,我使用类YourObject,因为您没有指定数组包含的类型...例如,如果数组仅包含字符串,请替换YourObjectString. 如果数组包含不同的对象,则必须创建一个表示 JSON 中数据的类,例如:

public class YourObject {
    private String attribute1;
    private int attribute2;
    private boolean attribute3;
    //getters and setters
}

然后,为了真正解析您的 JSON 响应,您只需执行以下操作:

Gson gson = new Gson();
Response response = gson.fromJson(yourJsonString, Response.class);

您的 JSON 数据将用于填充您的类结构,因此您可以访问这些字段,例如:

String attribute1 = response.getElements().get(i).get(i).getAttribute1();
于 2013-06-11T13:59:07.847 回答
2

使用GSON将您的 JSON 转换为 java

YourModelClass obj= gson.fromJson(json, YourModelClass .class);   
于 2013-06-11T13:55:15.947 回答
0

您可以使用杰克逊库。见:http: //jackson.codehaus.org/

这是一个示例:http ://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/

package com.mkyong.core;

import java.io.File;
import java.io.IOException;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

public class JacksonExample {
    public static void main(String[] args) {

    ObjectMapper mapper = new ObjectMapper();

    try {

        // read from file, convert it to user class
        User user = mapper.readValue(new File("c:\\user.json"), User.class);

        // display to console
        System.out.println(user);

    } catch (JsonGenerationException e) {

        e.printStackTrace();

    } catch (JsonMappingException e) {

        e.printStackTrace();

    } catch (IOException e) {

        e.printStackTrace();

    }

  }

}
于 2013-06-11T17:02:58.783 回答
0

嗨,我使用了以下代码,它工作得很好。

Gson gson = new Gson();
    JsonParser jsonParser = new JsonParser();
    JsonArray jsonArray = jsonParser.parse(this.plan).getAsJsonArray();
    ArrayList<PlanJson> planJsonList = new ArrayList<PlanJson>();
    for(JsonElement jsonElement:jsonArray)
    {
        System.out.println(jsonElement);
        PlanJson planJson = gson.fromJson(jsonElement, PlanJson.class);
        planJsonList.add(planJson);
    }

我发现它对于我的 json 结构来说是最容易解决的。

于 2013-06-11T16:51:22.033 回答