例如,目前我正在從Google API獲取餐館列表。那麼我必須創建一個帶getter和setter的餐廳類,然後我必須創建該類的對象,並手動從返回的json中爲每個字段填充它們。我如何以比手動創建bean對象更快的速度生成Json
是否有另一種方法比手動完成所有工作更快速?
例如,目前我正在從Google API獲取餐館列表。那麼我必須創建一個帶getter和setter的餐廳類,然後我必須創建該類的對象,並手動從返回的json中爲每個字段填充它們。我如何以比手動創建bean對象更快的速度生成Json
是否有另一種方法比手動完成所有工作更快速?
最好的辦法是找到特定API的庫。如果不這樣做,您可以使用JSON而不將它們映射到Java Beans(即僅通過執行parsed.getString("city_name")
等解析JSON並使用解析的JSON)。 Jackson是一個很好的庫。
您也可以嘗試generating a JSON schema out of the returned JSON,然後將其用於auto generate Java Beans code,然後將其與JSON庫一起使用,如Jackson。我嘗試過這一次,但似乎你必須修復生成的JSON模式,因爲上面引用的自動模式生成工具目前並不是很好。
我做的只是創建返回的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);