如何使用com.google.gson类创建json对象

时间:2017-07-21 10:30:06

标签: java android gson

我正在尝试通过传递另一个jsonObject来转换jsonArray和jsonObject。请问任何示例代码?

{
"role": "CUSTOMER",
"operationId": "updateHomePlace",
"parameters": {
    "tcId": "f44015c8-d672-411b-a0f9-49cf9ef3f6b2",
    "otpVerification": "false",
    "password": "false",
    "homePlace": [{
        "address": "MIG 528, KPHB 1st Phase,, Kukatpally Housing Board Colony, Kukatpally, Hyderabad, Telangana 500072, India",
        "lat": "17.4866943",
        "lng": "78.3994029"
    }]
}
}

2 个答案:

答案 0 :(得分:1)

像这样你可以为响应编写POJO / Model类

package com.example;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class Example {

@SerializedName("role")
@Expose
private String role;
@SerializedName("operationId")
@Expose
private String operationId;
@SerializedName("parameters")
@Expose
private Parameters parameters;

public String getRole() {
return role;
}

public void setRole(String role) {
this.role = role;
}

public String getOperationId() {
return operationId;
}

public void setOperationId(String operationId) {
this.operationId = operationId;
}

public Parameters getParameters() {
return parameters;
}

public void setParameters(Parameters parameters) {
this.parameters = parameters;
}

}

----------------------------------- com.example.HomePlace.java ----- ------------------------------

package com.example;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class HomePlace {

@SerializedName("address")
@Expose
private String address;
@SerializedName("lat")
@Expose
private String lat;
@SerializedName("lng")
@Expose
private String lng;

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

public String getLat() {
return lat;
}

public void setLat(String lat) {
this.lat = lat;
}

public String getLng() {
return lng;
}

public void setLng(String lng) {
this.lng = lng;
}

}

----------------------------------- com.example.Parameters.java ----- ------------------------------

package com.example;

import java.util.List;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class Parameters {

@SerializedName("tcId")
@Expose
private String tcId;
@SerializedName("otpVerification")
@Expose
private String otpVerification;
@SerializedName("password")
@Expose
private String password;
@SerializedName("homePlace")
@Expose
private List<HomePlace> homePlace = null;

public String getTcId() {
return tcId;
}

public void setTcId(String tcId) {
this.tcId = tcId;
}

public String getOtpVerification() {
return otpVerification;
}

public void setOtpVerification(String otpVerification) {
this.otpVerification = otpVerification;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public List<HomePlace> getHomePlace() {
return homePlace;
}

public void setHomePlace(List<HomePlace> homePlace) {
this.homePlace = homePlace;
}

}

使用Gson将此Parse json转换为自定义模型后

Gson gson = new GsonBuilder().create();
Example yourModelClass = gson.fromJson(yourJsonResponse, Example .class);

答案 1 :(得分:0)

试试android studio的这个插件 DTO Generator从给定的文本生成Java类。