gpt4 book ai didi

JAVA org.json 不显示空值

转载 作者:行者123 更新时间:2023-12-01 18:04:38 26 4
gpt4 key购买 nike

这是我的 JAVA JSON 代码

@GET
@Consumes("application/x-www-form-urlencoded")
@Path("/getAllEmp")
public Response GetAllEmp() {
JSONObject returnJson = new JSONObject();
try {
ArrayList<Emp_Objects> objList = new ArrayList<Emp_Objects>();
DBConnection conn = new DBConnection();
objList = conn.GetEmpDetails();

JSONArray empArray = new JSONArray();
if (!objList.isEmpty()) {
GetLocation loc = new GetLocation();
for (Emp_Objects obj : objList) {
JSONObject jsonObj = new JSONObject();
jsonObj.put("id", obj.id);
jsonObj.put("name", obj.name);
jsonObj.put("email", obj.email);
jsonObj.put("address", obj.address);
empArray.put(jsonObj);
}
}
returnJson.put("data", empArray);
} catch (Exception e) {
}

return Response.ok(returnJson.toString()).header("Access-Control-Allow-Origin", "*").build();
}

当我执行此操作时,它会给出以下 json

{
"data": [{
"id": 1,
"name": "123_name"
}, {
"id": 2,
"name": "321_name",
"email": "xyz@asd.com"
}]
}

在上面的 json 中,缺少电子邮件和地址,因为数据库中的电子邮件和地址为空

那么我可以显示带有空值的 json,如下所示

{
"data": [{
"id": 1,
"name": "123_name",
"email": "",
"address": ""
}, {
"id": 2,
"name": "321_name",
"email": "",
"address": ""
}]
}

我正在使用 JAVA 和 org.json 以及 MySQL 数据库。

最佳答案

如果对象为空,则插入一个空字符串。

jsonObj.put("email", obj.email == null ? "" : obj.email);
jsonObj.put("address", obj.address == null ? "" : obj.address);

如果您有大量的行需要处理,我建议您将其转换为函数,以获得更好的可读性并节省您一些时间。

jsonObj.put("email", nullToEmpty(obj.address));

private String nullToEmpty(String arg) {
return arg == null ? "" : arg;
}

关于JAVA org.json 不显示空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37615134/

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