翻新,将嵌套的JSON对象作为集合

时间:2018-08-21 20:52:08

标签: json retrofit retrofit2 jsonschema

假设我有一个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而不是单独的类?

1 个答案:

答案 0 :(得分:0)

使用Gson JSON转换器库。

创建一个Java类(如果已经创建,请使用相同的类)。 (出于测试目的,我创建了一个名为$query->num_rows()的类)

User

如果要手动将JSON转换为POJO,这是上述类的示例用法。

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

}

或者,如果您想使用Retrofit在内部将JSON转换为POJO,则不必担心。改造将在内部处理。

但是请确保在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 批注中使用正确的JSON key