从json自动创建java对象?

时间:2014-05-27 22:40:40

标签: java android json image parsing

我一直在尝试Android应用程序并使用API​​中的JSON来提供很酷的JSON对象,我知道有用于将JSON对象解析为Java对象的库,但是,当有一个巨大的JSON文件时,它会不断每次用户打开应用程序时更改参数,我如何创建java创建并将JSON对象转换为Java对象供我在我的应用程序中使用?

但是,我正在使用Tumblr API来提供JSON响应。我想将该响应转换为一堆图像,但是,博客上可能有数百个图像,我无法生成数百个Java对象,每个对应于每个相应的JSON对象。这就是我的问题所在,在更大规模上执行JSON解析。

如果你想看到实际的代码/ JSON脚本请注释,虽然我还没有看到它的必要性,更多的是一般性问题。

2 个答案:

答案 0 :(得分:1)

你是对的,总是在灵活性和结构之间进行权衡。如果您的JSON确实经常更改,但是以可预测的方式,最灵活的方法是好的旧JSONObject:

JSONObject jsonObject = new JSONObject(someJsonString);
JSONArray jsonArray = jsonObject.getJSONArray("someJsonArray");
String value = jsonArray.optJSONObject(i).getString("someJsonValue");

参考:http://www.json.org/javadoc/org/json/JSONObject.html

如果您在每次模式更改(例如API版本)时都在讨论生成新的POJOS,您可以尝试以下工具: http://www.jsonschema2pojo.org/http://jsongen.byingtondesign.com/ 他们是节省时间的人。

答案 1 :(得分:0)

简单易行!使用 jacksonlombokhttps://www.baeldung.com/jackson-object-mapper-tutorial#2-json-to-java-object

import lombok.Data;
import com.fasterxml.jackson.databind.ObjectMapper;

@Data
public class Car {

    private String color;
    private String type;

    // standard getters setters will be available from Lombok
}


String json = "{ \"color\" : \"Black\", \"type\" : \"BMW\" }";
Car car = objectMapper.readValue(json, Car.class);  

// Now you can use car object. Ex: car.getColor()
car.getColor() // = Black