我正在尝试使用我的Android应用程序的域。我试着看一些关于领域的简单例子。我能够使用领域设置项目,现在想要开始实现它,但是面临根据我的json响应生成分类的问题。
以下是我将使用的json的一个例子
{
"Status":true,
"Message":"Success",
"ds":{
"Table1":[{
"CustomerId":"1",
"CustomerName":"TestUser",
"CustomerNo":"100001",
"CustomerUrl":"http://abc-001-site10.itempurl.com",
"IsActive":true}]}}
我需要使用RealmObject为此生成POJO类,我怎样才能生成它,因为我完全被难倒了。
我也将使用GSON。
需要一些指导。
答案 0 :(得分:1)
这项工作有一个很好的工具 - 转到http://www.jsonschema2pojo.org/并自行测试。
以下是您的JSON转换为POJO类,其中包含用于GSON的getter和setter:
-----------------------------------com.example.Ds.java-----------------------------------
package com.example;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Generated;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
@Generated("org.jsonschema2pojo")
public class Ds {
@SerializedName("Table1")
@Expose
private List<Table1> table1 = new ArrayList<Table1>();
/**
*
* @return
* The table1
*/
public List<Table1> getTable1() {
return table1;
}
/**
*
* @param table1
* The Table1
*/
public void setTable1(List<Table1> table1) {
this.table1 = table1;
}
}
-----------------------------------com.example.Response.java-----------------------------------
package com.example;
import javax.annotation.Generated;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
@Generated("org.jsonschema2pojo")
public class Response {
@SerializedName("Status")
@Expose
private Boolean status;
@SerializedName("Message")
@Expose
private String message;
@SerializedName("ds")
@Expose
private Ds ds;
/**
*
* @return
* The status
*/
public Boolean getStatus() {
return status;
}
/**
*
* @param status
* The Status
*/
public void setStatus(Boolean status) {
this.status = status;
}
/**
*
* @return
* The message
*/
public String getMessage() {
return message;
}
/**
*
* @param message
* The Message
*/
public void setMessage(String message) {
this.message = message;
}
/**
*
* @return
* The ds
*/
public Ds getDs() {
return ds;
}
/**
*
* @param ds
* The ds
*/
public void setDs(Ds ds) {
this.ds = ds;
}
}
-----------------------------------com.example.Table1.java-----------------------------------
package com.example;
import javax.annotation.Generated;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
@Generated("org.jsonschema2pojo")
public class Table1 {
@SerializedName("CustomerId")
@Expose
private String customerId;
@SerializedName("CustomerName")
@Expose
private String customerName;
@SerializedName("CustomerNo")
@Expose
private String customerNo;
@SerializedName("CustomerUrl")
@Expose
private String customerUrl;
@SerializedName("IsActive")
@Expose
private Boolean isActive;
/**
*
* @return
* The customerId
*/
public String getCustomerId() {
return customerId;
}
/**
*
* @param customerId
* The CustomerId
*/
public void setCustomerId(String customerId) {
this.customerId = customerId;
}
/**
*
* @return
* The customerName
*/
public String getCustomerName() {
return customerName;
}
/**
*
* @param customerName
* The CustomerName
*/
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
/**
*
* @return
* The customerNo
*/
public String getCustomerNo() {
return customerNo;
}
/**
*
* @param customerNo
* The CustomerNo
*/
public void setCustomerNo(String customerNo) {
this.customerNo = customerNo;
}
/**
*
* @return
* The customerUrl
*/
public String getCustomerUrl() {
return customerUrl;
}
/**
*
* @param customerUrl
* The CustomerUrl
*/
public void setCustomerUrl(String customerUrl) {
this.customerUrl = customerUrl;
}
/**
*
* @return
* The isActive
*/
public Boolean getIsActive() {
return isActive;
}
/**
*
* @param isActive
* The IsActive
*/
public void setIsActive(Boolean isActive) {
this.isActive = isActive;
}
}
要在Realm中使用它,您希望extends RealmObject
要存储在Realm中的类,并将@PrimaryKey
注释添加到每个类中唯一的字段之一。例如,customerId
可能是Table1类中的候选者。如果extends RealmObject
包含List<Foo>
的任何类,则必须将其与RealmList<Foo>
交换,Foo
也必须extends RealmObject
。如果你使用RealmList,你必须向GSON添加一个TypeAdapter,以便它知道如何处理它 - here is one我写的是一个通用的T。