如何比手动创建bean对象更快地处理Json

时间:2012-12-02 12:52:35

标签: java json

例如,目前我正在从Google API获取餐馆列表。然后我必须创建一个带有getter和setter的餐馆类,然后我必须创建该类的对象并用手动返回的json中的每个字段填充它们。

还有另一种方法可以比手动完成所有工作更快地完成这项工作吗?

2 个答案:

答案 0 :(得分:0)

最好的方法是找到特定API的库。如果做不到这一点,您可以使用JSON而不将它们映射到Java Bean(即只需解析JSON并通过执行parsed.getString("city_name")等处理解析的JSON)。 Jackson是一个很好的图书馆。

您也可以尝试generating a JSON schema out of the returned JSON,然后将其用于auto generate Java Beans code,然后将其与Jackson等JSON库一起使用。我试过一次,但似乎你必须修改生成的JSON模式,因为上面提到的自动模式生成工具目前还不是很好。

答案 1 :(得分:0)

我所做的只是创建一个与返回的json字符串匹配的对象,并使用gson.fromjson()

将值放入对象中

对象。

public class Return {
    private String Status;
    private String[] Data;

    public Return(String Status, String[] Data){
        this.Status=Status;
        this.Data=Data;
    }
    public String getStatus() { return Status; }

    public String[] getData() { return Data; }
}

填充对象的代码。

        java.lang.reflect.Type listType = new TypeToken<Return>(){}.getType();
        Return return2= new Gson().fromJson(myresponse.toString(), listType);