【发布时间】:2021-03-15 14:09:46
【问题描述】:
这是我的第一篇文章,谢谢。
我正在使用 javax.json 库来读取包含 Json 的导入 file.txt。
这是正文:
[{
"role" : "role1",
"db" : "db_admin",
"flag" : false,
"roles" : [
{
"role" : "role",
"db" : "db_admin"
}
],
"inRoles" : [
{
"role" : "role",
"db" : "db_admin"
}
]
},
{
"role" : "role2",
"db" : "db_admin",
"flag" : false,
"roles" : [
{
"role" : "role",
"db" : "db_admin"
}
],
"inRoles" : [
{
"role" : "role",
"db" : "db_admin"
}
]
},
{
"role" : "role3",
"db" : "db_admin",
"flag" : false,
"roles" : [
{
"role" : "role",
"db" : "db_admin"
}
],
"inRoles" : [
{
"role" : "role",
"db" : "db_admin"
}
]
}]
现在,我做了一些尝试,但我只能读取第一个对象。 这是我读取 first JsonArray 的代码:
//I read all line and put them into StringBuilder and then in a unique String
String json = sbJson.toString();
JsonReader jsonreader = Json.createReader(new StringReader(json));
// Get the JsonObject structure from JsonReader.
JsonObject jsonobject = jsonreader.readObject();
jsonreader.close();
// read json array
JsonArray jsonarray = jsonobject.getJsonArray("roles");
JsonObject value = jsonarray.getJsonObject(0);
String roles_role = value.getString("role");
String roles_db = value.getString("db");
jsonarray = jsonobject.getJsonArray("inRoles");
value = jsonarray.getJsonObject(0);
String inheritedRoles_role = value.getString("role");
String inheritedRoles_db = value.getString("db");
所以我可以从第一个 JsonObject 中获取所有元素,但我需要其他元素,并且我尝试了更多解决方案,但它们对我不起作用...
【问题讨论】:
标签: java arrays json javax.json