Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.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/13.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
将Json转换为Java的更简单方法(Jackson)_Java_Json_Jackson_Mapper - Fatal编程技术网

将Json转换为Java的更简单方法(Jackson)

将Json转换为Java的更简单方法(Jackson),java,json,jackson,mapper,Java,Json,Jackson,Mapper,我从一个服务接收到大量的json对象,到目前为止,我一直在创建POJO以匹配传入的json。 然而,这太单调了,因为对于我遇到的每一个不同的服务,我必须构建15-20个新的模型类来表示我遇到的新服务 简言之,我要寻找的是一种从json中的neested对象获取所需值的方法,如下所示(抱歉格式): 所以在这种情况下,我想要一个有价值的对象。我想在不为random1/3/4/5创建模型的情况下得到它,因为我一直在做这件事 我应该提到,我使用Jacksons ObjectMapper将json转换为j

我从一个服务接收到大量的json对象,到目前为止,我一直在创建POJO以匹配传入的json。 然而,这太单调了,因为对于我遇到的每一个不同的服务,我必须构建15-20个新的模型类来表示我遇到的新服务

简言之,我要寻找的是一种从json中的neested对象获取所需值的方法,如下所示(抱歉格式):

所以在这种情况下,我想要一个有价值的对象。我想在不为random1/3/4/5创建模型的情况下得到它,因为我一直在做这件事

我应该提到,我使用Jacksons ObjectMapper将json转换为java对象


希望这是有意义的。

您可以试用此在线pojo生成器:

它将从纯json(或json模式)生成java类,甚至添加jackson注释

  • 确保选中“允许其他属性”
  • 它需要有效的json作为输入,所以不要忘记字段名称和值周围的双引号

如果您经常这样做,甚至还有可编写脚本的版本和maven插件。

如果有帮助,您也可以让Jackson将JSON解组到映射中。这是否意味着我可以指定所需的密钥?如果json中有多个同名的对象,但实际上是不同的对象,那么,例如,如果在我上面的示例中random2被称为random5,那么我将有两个名为random5的对象,但它们具有不同的属性。我收到的一些JSON就是这样的:(你可以试试JSON pathJSON path。JSON path看起来是个不错的候选者,好主意。“我会有两个名为random5的对象”不会有多大关系,因为它们不在同一个“级别”。第二个“random5”在“random4”内,它本身在“random3”内。
random1 {

    random2 {

        arrayOfRandoms

    }

    random3 {

        random4 {

            random5 {
                someValueIWant
            }
        }
    }
}