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