簡體   English   中英

翻新,將嵌套的JSON對象作為集合

[英]Retrofit, nested JSON object as collection

假設我有一個JSON:

{
    "age" : 26,
    "email" : "norman@futurestud.io",
    "isDeveloper" : true,
    "name" : "Norman",
    "userAddress" : {
       "city" : "Magdeburg",
       "country" : "Germany",
       "houseNumber" : "42A",
       "street" : "Main Street"
    }
}

我正在使用Retrofit和jsonschema2pojo。 對於userAdress,它將生成一個具有四個字段的類。 是否可以將userAddress內容存儲為兩個String的HashMap而不是單獨的類?

使用Gson JSON轉換器庫。

創建一個Java類(如果已經創建,請使用相同的類)。 (出於測試目的,我創建了一個名為User的類)

import com.google.gson.annotations.SerializedName;

import java.util.Map;

public class User {

  @SerializedName("age")
  private int age;
  @SerializedName("email")
  private String email;
  @SerializedName("isDeveloper")
  private boolean isDeveloper;
  @SerializedName("name")
  private String name;
  @SerializedName("userAddress")
  private Map<String, String> userAddress;

  // other member variables if any

  // constructors if any

  // getter and setter methods

}

如果要手動將JSON轉換為POJO,這是上述類的示例用法。

String jsonData = "your_json_data_received_from_api";
User user = new Gson().fromJson(jsonData, User.class);
// do whatever you want to with user object

或者,如果您想使用Retrofit在內部將JSON轉換為POJO,則不必擔心。 改造將在內部處理。

但是請確保在POJO(模型)類內的@SerializedName()批注中使用正確的JSON key

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM