草庐IT

jackson-modules-base

全部标签

java - 指定 Jackson 的字段命名策略

我有关于使用Jackson将bean序列化/反序列化为json的问题。以前我使用GSON来做到这一点,但现在我面临一个已经依赖于Jackson的项目,如果我可以用手头已有的东西做的话,我宁愿不引入新的依赖项。想象一下我有一个这样的bean:classExampleBean{privateStringfirstField;privateStringsecondField;//respectivegettersandsetters}然后Jackson将其序列化为:{"firstField":"","secondField":""}我正在使用以下代码生成上述结果:ExampleBeanbea

如何将变量上的base :: scale()与dplyr :: filter()一起使用

我想在数据框中放置其中一列。但是当我这样做时,我再也无法使用dplyr::filter(),这很不方便。有一种优雅的解决方法吗?MWE:df1)错误:每个变量必须是1D原子向量或列表。问题变量:“cyl”看答案scale()输出一个矩阵(请参阅help("scale"),部分价值).你得到:str(df)#'data.frame':32obs.of11variables:#$mpg:num212122.821.418.718.114.324.422.819.2...#$cyl:num[1:32,1]-0.105-0.105-1.225-0.1051.015...#..-attr(*,"scal

java - Jackson 对象映射器将 java 映射转换为 json 维护键的顺序

我正在使用jackson.map.ObjectMapperAPI将map转换为json字符串。我正在使用writeValueAsString方法来实现这一点。我将一个根据值排序的映射传递给writeValueAsString方法。我得到的JSON字符串是根据键求出的。有没有一种方法可以使用jackson将map转换为JSON字符串而不打乱map中项目的顺序。我尝试将Feature.SORT_PROPERTIES_ALPHABETICALLY设置为false,但根据文档,它仅适用于POJO类型。实现上述行为的任何想法。 最佳答案 使用

java - 如何将 Pdf 转换为 base64 并编码/解码

好的,我有一些pdf需要通过base64encoder转换为base64。最后,我使用解码器转换回pdf格式,但我的内容丢失了。我的代码:byte[]input_file=Files.readAllBytes(Paths.get("C:\\user\\Desktop\\dir1\\dir2\\test3.pdf"));byte[]encodedBytes=Base64.getEncoder().encode(input_file);StringpdfInBase64=newString(encodedBytes);StringoriginalString=newString(Base6

java - Jackson TypeFactory 静态方法已弃用使用什么?

jackson的Typefactory类中有许多已弃用的方法。我是这样使用它的:publicListgetX(Classclz){ObjectMappermapper=newObjectMapper();try{StringjsonData=mapper.writeValueAsString(data);a=mapper.readValue(jsonData,TypeFactory.collectionType(List.class,clz));}catch(Exceptione){System.out.println(e.getMessage());}returna;//aisagl

java - Jackson->Jackson + HttpPost = "Invalid UTF-8 middle byte",设置 Mime 和编码

我在我的客户端中使用ApacheHTTP客户端库和Jackson。当我将JSON发送到服务器时,出现错误:org.codehaus.jackson.JsonParseException:InvalidUTF-8middlebyte0x65at[Source:HttpInputOverHTTP@22a4ac95;line:1,column:81]如果我没有设置任何header,我会收到invalidmediatype,这是有道理的。如果我使用curl和相同的header,服务器会接受它,所以我认为服务器没问题(只是巧合,它也在使用Jackson)这些是文档;我已将其硬编码为仅使用8位字符

java - 阻止 jackson 改变变量名的大小写

我在Spring中使用Jackson将我的类序列化为JSON。当我像下面的示例那样序列化一个类时,Jackson正在将某些字段的名称从CamelCase更改为小写。我知道我可以通过创建自定义(反)序列化器来解决这个问题,但我希望在全局范围内关闭它。也许通过在application.properties中设置一个属性。根据defaultJacksonnamingstrategy,这是不应该发生的:Inabsenceofaregisteredcustomstrategy,defaultJavapropertynamingstrategyisused,whichleavesfieldname

java - 当 json 包含 type 属性时,jackson 可以确定要反序列化到的根对象类型吗?

假设对json的序列化包括实际对象的类名,在类上使用此注释:@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS,include=JsonTypeInfo.As.PROPERTY,property="@type")classMyClass{Stringfoo;}所以json例如:{"@type":"com.example.MyClass","foo":"bar"}可以在不指定类型的情况下反序列化吗?我的意思是甚至不是super类型。就像这样:objectMapper.readValue(value,Object.class);这实际上不起作用,它带回了一个ma

java - Jackson JSON 生成器为缺失的对象创建空 JSON 值

我已经开始使用Jackson作为JSON生成器,作为googleGSON的替代品。我遇到了Jackson生成对象的问题:如果对象确实为null,则为null。另一方面,GSON在JSON中生成NO条目,这是我想要的行为。有没有办法阻止Jackson在对象丢失时生成null对象/值?jacksonObjectMappermapper=newObjectMapper();StringWritersw=newStringWriter();mapper.writeValue(sw,some_complex_object);Stringjackson=sw.getBuffer().toStrin

java - 在 Jackson 的单个文件中反序列化来自多个 YAML 文档的 POJO

我有一个看起来像这样的YAML文件:---name:Samtags:-Dev-Java----name:Bobtags:-PM我想使用Jackson来反序列化文件中的所有文档,但我看不到使用普通ObjectMapper来执行此操作的方法。如果我使用YAMLFactory为我的文件创建解析器,我可以单步执行所有标记,因此解析器显然能够处理多个文档-但我如何将它们联系在一起?看起来由我的YAMLFactory创建的解析器只解析文件中的单个文档。我也尝试过直接创建YAMLParser并使用ObjectMapper#readValue(JsonParser,Class),但是ObjectMap