java - 使用 Jackson 获取 JSON 值的最高父键

标签 java json jackson key fetch

我有一个 json

{
 "yes": 
      {
       "en": "Yes",
       "de": "Ja"
      },
 "no": 
      {
       "en": "No",
       "de": "Nein"
      }
}

我想要一个使用 jackson 的 java 函数,它可以找到特定 json 值可能的最高键。

例如,如果我将值传递为 Nein -> 则位于顶层的 no Key 应该是输出。我怎样才能在java中完成这个?

最佳答案

那么,您可以尝试如下操作:

   public static void getRootNodeOfJSONObject() throws IOException {
        ObjectMapper objectMapper = new ObjectMapper();
        String jsonString = "{\"yes\":{\"en\": \"Yes\",\"de\": \"Ja\"},\"no\": {\"en\": \"No\",\"de\": \"Nein\"}}";
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        JsonNode jsonNodeRoot = objectMapper.readTree(jsonString);

        for (Iterator key = jsonNodeRoot.fields(); key.hasNext();) {
            String text = key.next().toString();
            if(text.contains("Nein"))
            {
                String rootElement = text.substring(0, text.indexOf("="));
                System.out.println("Root element: " + rootElement);
            }
        }
    }

    public static void main(String[] args) throws IOException {
        getRootNodeOfJSONObject();
    }

关于java - 使用 Jackson 获取 JSON 值的最高父键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55411503/

相关文章:

python - repoze.who 身份验证失败时如何返回 JSON 输出?

java - 使用 Jackson 编写 JSON 会阻塞我的 TimerTask

java - 如何在同一应用服务器上从一只耳朵访问另一只耳朵的方法

java - 三角形未在 OSX 上的 OpenGL 2.1 中绘制

java - 将字符串值转换为整数

javascript - 动态设置jquery数据表列的数据源

android - 将 Json 对象保存到变量名与 Json 中相同的类中

java - Spring Validation - 以编程方式绑定(bind)到 validator

java - Jackson ObjectMapper writeValueAsBytes 方法向已包含反斜杠的字符串添加另一个反斜杠

java - 使用邻居递增地计算矩阵中的元素