gpt4 book ai didi

java - 将数据库详细信息转换为 JSON 对象

转载 作者:行者123 更新时间:2023-11-29 10:02:12 24 4
gpt4 key购买 nike

我有一个表,其中包含列

recordID, recordName, titleFeild, titleIDMap, titleId, titleStartDate, titleEndDate, languageId

现在我已经将上面列的数据转换为如下所示的 JSON 对象数据

{
"recordId" :10,
"recordName" : "RECORDS",
"records" : [ {
"titleField" : 1,
"titleIDMap" : null,
"titleId" : 500,
"titleStartDate" : "2013-12-22T00:00:00.000+0000",
"titleEndDate" : "2013-12-03T00:00:00.000+0000",
"languageId" : 20
}]
}

请注意,records 是一个列数组(titleFeild、titleIDMap、titleId、titleStartDate、titleEndDate、languageId)

到目前为止我开发的代码是

    List<Object[]> objList = dao.getStatus();
Integer result = null;
JSONObject jsonData = new JSONObject();
JSONArray jsonDataArray = new JSONArray();
if(objList!=null && objList.size()>10000)
{
for (Object[] nameObj : objList) {

jsonData.put("", nameObj.get(arg0) );


}
}

如何从列数据构建 JSON 对象?

最佳答案

您可以使用 google-gson 轻松实现这一目标图书馆。简单来说,您必须创建几个 Pojos(引用另一个包含引用列表的对象)。

RecordIDRecordName 视为元数据

创建一个表示此信息的 pojo:

public class DbMetaPojo {

private int recordID;
private String recordName;
private List<Record> records;

public List<Record> getRecords() {
return records;
}

public void setRecords(List<Record> records) {
this.records = records;
}

public String getRecordName() {
return recordName;
}

public void setRecordName(String recordName) {
this.recordName = recordName;
}

public int getRecordID() {
return recordID;
}

public void setRecordID(int recordID) {
this.recordID = recordID;
}

}

使用实际的 Record 字段创建另一个 pojo:

public class Record {

public int getTitleFeild() {
return titleFeild;
}

public void setTitleFeild(int i) {
this.titleFeild = i;
}

public String getTitleIDMap() {
return titleIDMap;
}

public void setTitleIDMap(String titleIDMap) {
this.titleIDMap = titleIDMap;
}

public int getTitleId() {
return titleId;
}

public void setTitleId(int titleId) {
this.titleId = titleId;
}

public String getTitleStartDate() {
return titleStartDate;
}

public void setTitleStartDate(String titleStartDate) {
this.titleStartDate = titleStartDate;
}

public String getTitleEndDate() {
return titleEndDate;
}

public void setTitleEndDate(String titleEndDate) {
this.titleEndDate = titleEndDate;
}

public int getLanguageId() {
return languageId;
}

public void setLanguageId(int languageId) {
this.languageId = languageId;
}

private int titleFeild;
private String titleIDMap;
private int titleId;
private String titleStartDate;
private String titleEndDate;
private int languageId;

}

现在只是一种用相关数据填充 POJO 的方法(用数据检索替换硬编码逻辑):

public static void main(String... main) {
DbMetaPojo obj = new DbMetaPojo();

obj.setRecordID(10);
obj.setRecordName("RECORDS");

Record record = new Record();

record.setLanguageId(20);
record.setTitleEndDate("2013-12-22T00:00:00.000+0000");
record.setTitleFeild(1);
record.setTitleId(500);
record.setTitleIDMap("SOME NULL");
record.setTitleStartDate("2013-12-22T00:00:00.000+0000");

List<Record> list = new ArrayList<Record>();
list.add(record);
obj.setRecords(list);

Gson gson = new Gson();

String json = gson.toJson(obj);

System.out.println(json);
}

输出是您形成的 JSON:

{
"recordID": 10,
"recordName": "RECORDS",
"records": [
{
"titleFeild": 1,
"titleIDMap": "SOME NULL",
"titleId": 500,
"titleStartDate": "2013-12-22T00:00:00.000+0000",
"titleEndDate": "2013-12-22T00:00:00.000+0000",
"languageId": 20
}
]
}

编辑:

为了与您的代码保持一致,您可能需要执行以下操作:

List<Object> objList = dao.getStatus();
List<DbMetaPojo> metaList = new ArrayList<DbMetaPojo> ();
if (objList != null && objList.size() > 10000) {
for (Object nameObj : objList) {
DbMetaPojo meta = new DbMetaPojo();
meta.setRecordID(nameObj[0]);
meta.setRecordName(nameObj[0]);
...
...
...

metaList.add(meta);
}
}

关于java - 将数据库详细信息转换为 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21110537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com