java在不使用Stringbuilder的情况下将SQLite数据设置为JsonObject类
我正在从我的SQLite数据库检索信息以显示在CardView上
我的SQLite数据库结构是SQLite DB
我的班级是
public class ServiceRequest{
public String reqid;
public String name;
public String branch;
public Date date;
public Date time;
public String services;
//Getter and setter
.............
.............
}
我可以使用
List<ServiceRequest> reqs = getAllReqs();
List<ServiceRequest> jobservList = new ArrayList<>();
for (ServiceRequest access : reqs) {
ServiceRequest ob = new ServiceRequest();
ob.setId(access.getId());
ob.setBranch(access.getBranch());
ob.setName(access.getName());
ob.setDate(access.getDate());
ob.setTime(access.getTime());
ob.setServices(access.getServices());
jobservList.add(ob);
}
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json2 = gson.toJson(jobservList);
return json2;
但是我想要的JSONObject格式是
{
"100": {
"name": "Rahul Suresh",
"branch": "Koramangala",
"phNumber":"123456",
"date": "2016-08-06",
"time": "16:00",
"reqServices": "Loans"
},
"200": {
"name": "Sidh",
"branch": "Jayanagar",
"phNumber":"182694",
"date": "2016-08-12",
"time": "11:00",
"reqServices": "OpenAcc,SafeDeposit"
}
}
因此,我将通过一次调用获得一个完整的JSON对象
JSONObject jb = (JSONObject) jsonObject.get(Integer.toString(id));
100200是“需求ID”
使用字符串生成器可以实现这一点。但是,有没有其他方法来实现这一点,比如使用对象映射器和类或其他东西
# 1 楼答案
如果您想要形成所显示的JSON,可以将ID“拉出”到HashMap键中,然后将该值设置为您的对象
我不记得Gson是如何处理映射中对象值的转换的,但这是一般的想法