无法在json文件中使用JQ提取字段

时间:2017-03-12 16:41:34

标签: jq

我一直在寻找解决方案,但仍然没有设法做到这一点。

我试图获取长号字段(见下文)并忽略其他所有字段,但未能这样做。

这是JSON文件内容:

{
    "jsonProfile": {
        "version": "1.0",
        "format": 1
    },
    "authenticationDatabase": {
        "JQ_Newb": {
            "username": "JQ_Newb",
            "profiles": {
                "12345678901234567890123456789012": {
                    "displayName": "JQ_Newb"
                }
            }
        }
    }
}

这是我的过滤器:

.authenticationDatabase|.[]|.profiles

这就是结果:

{
  "12345678901234567890123456789012": {
    "displayName": "JQ_Newb"
  }
}

感谢您帮助Stackoverflow人员!

2 个答案:

答案 0 :(得分:1)

以下内容将从.authenticationDatabase.JQ_Newb.profiles中提取所有关键名称:

jq -r '.authenticationDatabase.JQ_Newb.profiles | to_entries[] | .key' data.json

如果.authenticationDatabase.JQ_Newb.profiles中有多个密钥,则会显示:

12345678901234567890123456789012
12345678901234567890123456789013

获取.authenticationDatabase.JQ_Newb.profiles中所有键下的值:

jq -r '.authenticationDatabase.JQ_Newb.profiles | to_entries[] | .value ' data.json

答案 1 :(得分:1)

我已经回答了你,但你不再在频道中 - 它并不是非常活跃,因为你可能已经注意到了; _;

您已经获得了一个有效的解决方案,但这是我使用user@host $ jq -r '.authenticationDatabase.JQ_Newb.profiles | keys' jqnewb.json [ "12345678901234567890123456789012" ] user@host $ jq -r '.authenticationDatabase.JQ_Newb.profiles | keys[]' jqnewb.json 12345678901234567890123456789012

的答案
URL obj = new URL("https://URLGoesHere");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");