Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSONObject具有嵌套键_Java_Json_Org.json - Fatal编程技术网

Java JSONObject具有嵌套键

Java JSONObject具有嵌套键,java,json,org.json,Java,Json,Org.json,如果存在特定值,我想读取json配置文件并执行代码 { "database": { "port": 3306 } } 我用的是maven central的 if (jsonObject.has("database.port")) { // Get content of "database.port" and call logic } 默认情况下,database.port不

如果存在特定值,我想读取json配置文件并执行代码

{
    "database": {
        "port": 3306
    }
}
我用的是maven central的

if (jsonObject.has("database.port")) {
    // Get content of "database.port" and call logic
}
默认情况下,database.port不会被识别为嵌套路径。如何告诉org.json这是一个嵌套路径

if (jsonObject.has("database") && jsonObject.getJSONObject("database").has("port")
这很好,但我有更多的嵌套值,它变得非常混乱


有没有更好的方法来获取内容,而不是两次写入路径(1次用于JSONObject has(…),1次用于JSONObject getInt(…)

正如rupps所说,org.json不支持嵌套路径。我升级到gson,它支持更高级的解析。看起来不错,但对于我的需求来说似乎有点过分了。

对不起,org.json不支持嵌套解析。但是您可以尝试将JSON转换为bean,这将更容易

JSONObject d=JSONObject.get(“数据库”);字符串端口=d.getString(“端口”)@rupps然后我必须使用
if(jsonObject.has(“数据库”)&&jsonObject.getJSONObject(“数据库”).has(“端口”)
,这非常不方便(特别是如果我有更多的嵌套值)。您使用的json库是最基本的,并且不包括嵌套路径的nethods。您可以使用