我阅读了很多教程(因为这是我第一次使用Retrofit和Google Places API),我注意到了创建POJO类的模式,这样Retrofit就可以将JSON响应数据Map到POJO。是否可以创建只包含部分字段的POJO,或者在创建POJO时必须包含JSON响应中的每个字段?例如,如果我有这样JSON响应结构(取自Google Places Autocomplete API):
{
"status": "OK",
"predictions" : [
{
"description" : "Paris, France",
"id" : "691b237b0322f28988f3ce03e321ff72a12167fd",
"matched_substrings" : [
{
"length" : 5,
"offset" : 0
}
],
"place_id" : "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
"reference" : "CjQlAAAA_KB6EEceSTfkteSSF6U0pvumHCoLUboRcDlAH05N1pZJLmOQbYmboEi0SwXBSoI2EhAhj249tFDCVh4R-PXZkPK8GhTBmp_6_lWljaf1joVs1SH2ttB_tw",
"terms" : [
{
"offset" : 0,
"value" : "Paris"
},
{
"offset" : 7,
"value" : "France"
}
],
"types" : [ "locality", "political", "geocode" ]
},
...additional results ...
}
显然,我需要一个类来保存status
和predictions
的值:
public class Result
{
String status;
@SerializedName("predictions")
List<Prediction> predictionList;
}
然后对于Prediction
类,我可以有如下成员:
public class Prediction
{
String description;
String id;
@SerializedName("place_id")
String placeID;
String reference;
List<String> types;
}
但是我是否需要为matched_substrings
和terms
包含单独的对象(即创建单独的类),即使我不打算使用这些值?
我的第二个问题是,我如何才能只获得JSON响应字符串,以便我可以使用Gson自己解析它。这将有助于避免为大型JSON响应创建一堆类。我只是好奇,以防我想这样做。谢谢。
1条答案
按热度按时间e4eetjau1#
//您可以忽略未知键,就像下面有趣的GooglePredictionsResponse(字符串:字符串):Google预测响应= Json {忽略未知密钥= true }.解码自字符串(字符串)