草庐IT

mongo-jackson-mapper

全部标签

java - 替代 Jackson @JsonSubTypes

Jackson框架提供了基于注解的方法来在序列化过程中发出类型信息。我不想在我的父类(superclass)(动物)中使用@JsonSubTypes注释。相反,我想告诉我的子类,即Dog和Elephant,Animal是它们的父类。有没有在Animal类中不使用注释的方法。如果是,请提供尽可能执行相同操作的示例。以下是我正在尝试解决的案例。“测试”收到的JSON包含“类型”字段,如“狗”或“大象”。我想将这两个类注册为“Animal”类的子类型,但不想在Animal中使用@JsonSubTypes。如有任何帮助,我们将不胜感激。提前致谢。@JsonTypeInfo(use=JsonTy

java - 是否有任何 jackson json 策略(使用注释或其他方式)将在字段反序列化之前和之后执行一些逻辑?

每次对POJO的字段进行反序列化后,我需要执行一些代码。有什么办法可以通过一些jackson注释(或其他)策略来做到这一点?解决此问题的一种方法是为每个字段类型创建一个自定义反序列化器,该反序列化器将实现PostLogicDeserializerInterface或扩展一些PostLogicDeserializerAbstract。但这会产生大量难以维护的困惑代码(而不是仅仅使用@JsonProperty)。所以我认为这不是一个好主意。我看到您可以在类级别使用@JsonDeserialize,但只能用于值类。来自文档:Whenannotatingvalueclasses,configu

java - 如何将现有的关系数据库模型转换为适用于非 sql 数据库(如 Mongo DB 或 Amazon Dynamo DB)的模型

我想修改现有的Java购物车应用程序,使其与AmazonDynamoDB或MongoDB等nosql数据库一起使用...但是传统的MySQL数据库是关系数据库-它具有复合键/主/外键--相反,在AmazonDynamoDB中,要么有一个主键,要么有一个由2个字段组成的复合主键...我有关系数据库的详细数据模型...现在我该如何转换它,以便我在AmazonDynamoDB中拥有一个能够使应用程序与DynamoDB一起工作的数据库(即没有Sql数据库)?执行此操作时是否必须牢记任何最佳实践/预防措施?这是否也涉及大量重写应用程序代码的工作?或者我可以在不修改应用程序逻辑的情况下自行处理数据

java - Spring Data Mongo - 如何通过@DBRef 字段的 id 进行查询

我是SpringDataMongo的新手,所以我一定是做错了什么,因为我无法执行这么简单的查询。这是我的模型:@Document(collection="brands")publicclassBrand{@Idprivateintid;privateStringname;...//getters-setters}@Document(collection="models")publicclassModel{@Idprivateintid;privateStringname;@DBRefprivateBrandbrand;...//getters-setters}我想从一个品牌中获取所有模

java - 使用 Jackson 创建平面对象形式的嵌套 json

我知道Jackson允许使用@JsonUnwrapped创建平面json,这样类的对象就像publicclassPerson{publicintage;@JsonUnwrappedpublicNamename;publicclassName{publicStringfirst,last;}}会被序列化为{"age":99,"first":"Name","last":"Surname"}但是,我找不到相反的方法-有一个类似的类publicclassPerson{publicintage;publicStringfirstName,lastName;}并将其对象序列化和反序列化{"age"

java - 自定义 Jackson ObjectMapper 以读取自定义注释并屏蔽带注释的字段

我有一个要求,我已经创建了一个自定义注释@MaskSensitiveData。我注释敏感字段。喜欢classMyBean{StringuserName;@MaskSensitiveDataStringcardNumber;Stringabc;Stringxyz;}ObjectMappermapper=newObjectMapper();Stringjson=null;AnnotationIntrospectorprimary=newJaxbAnnotationIntrospector();AnnotationIntrospectorsecondary=newJacksonAnnotat

java - 如何使用 Jackson 基于注释从对象中(反)序列化字段?

我需要以我将在下面描述的特定方式配置Jackson。要求带注释的字段仅使用其id进行序列化:如果字段是普通对象,序列化它的id如果字段是对象的集合,序列化一个id的数组带注释的字段以不同方式序列化其属性名称:如果字段是普通对象,在属性名后加上"_id"后缀如果该字段是对象的集合,则在属性名称后添加"_ids"后缀对于注解,我考虑的是自定义的@JsonId,理想情况下是带有一个可选值来覆盖名称,就像@JsonProperty所做的那样id属性应由用户定义,可以使用:已经存在的Jackson的@JsonIdentityInfo或者通过创建另一个类或字段注释或者通过决定检查哪个注解来检查id

java - com.fasterxml.jackson.databind.exc.MismatchedInputException : Can not deserialize instance of object out of START_ARRAY token

获取MismatchedInputException。在这里搜索了很多问题,但发现JSONMappingException居多。我不明白它们是相同还是不同。实体如下:@Entity@Table@NamedQueries({@NamedQuery(name="User.findAll",query="SELECTuFROMUseru"),@NamedQuery(name="User.findByEmail",query="SELECTuFROMUseruWHEREu.email=:pEmail")})publicclassUser{@Id@GenericGenerator(name="i

使用docker-compose 搭建mongo单节点与副本集

使用docker-compose搭建mongo单节点与副本集注:确认已经已经关闭防火墙和selinux和已安装docker1、单节点安装1.1安装docker-compose1.安装docker-cpmposecurl-Lhttps://github.com/docker/compose/releases/download/1.23.1/docker-compose-uname-s-uname-m>/usr/local/bin/docker-composechmod+x/usr/local/bin/docker-compose或者去直接下载安装包https://github.com/docke

java - jackson 序列化没有正确处理单引号

由于与SpringFramework的集成,我刚刚开始使用Jackson,并且遇到了值中单引号的问题。尝试在页面上使用jQuery解析JSON时,出现JavaScript错误"SyntaxError:missing)afterargumentlist".我习惯使用Gson来序列化我的对象并且不会遇到这个问题,因为Gson会将单引号替换为Unicode\u0027。例如;JavapublicfinalclassPerson{privateStringfirstName;privateStringlastName;publicPerson(){}publicvoidsetFirstName