草庐IT

jackson-annotations

全部标签

java - Jackson @JsonRawValue 用于 Map 的值

我有以下Javabean类,使用Jackson将其转换为JSON。publicclassThing{publicStringname;@JsonRawValuepublicMapcontent=newHashMap();}content是一个map,其值将是来自另一个来源的原始JSON。例如:StringjsonFromElsewhere="{\"foo\":\"bar\"}";Thingt=newThing();t.name="test";t.content.put("1",jsonFromElsewhere);所需生成的JSON是:{"name":"test","content":

java - Jackson 有类似 JSON.stringify 的东西吗?

我发现自己需要JSON.stringify(objectMapper.writeValueAsString(someJavaBean));Java中的服务器端,因为我对基础设施中的另一个服务进行HttpClient调用。jackson有这样的功能吗?有没有一种简单的方法可以在不向我的项目添加其他依赖项的情况下执行此操作?如果重要的话,我们是Jackson2.3.2。我需要做的是像转换一些JSON{"first_name":"Robert","last_name":"Kuhar"}像这样的Javascript字符串"{\"first_name\":\"Robert\",\"last_na

java - jackson CSV 缺失列

我正在使用JacksonCSV将CSV文件解析为POJO。我的问题是,如果CSV中的一行的列太少,解析器不会提示,只是将其余字段设置为空。解析代码:CsvMappercsvMapper=newCsvMapper();csvMapper.addMixInAnnotations(Person.class,PersonCsvMixin.class);CsvSchemaschema=csvMapper.schemaFor(Person.class).withHeader();MappingIteratorit=csvMapper.reader(dataClass).with(schema).r

java - Jackson ObjectMapper 即使使用 NON_NULL 也会抛出 NullPointerException

当使用以下JSON并且“phones”或“emailAddresses”为空时,我将收到NullPointerException。JSON:{"item":{"messages":{"user.phone.missing":{"type":"warning","key":"user.phone.missing","message":"Userprofiledoesnothaveaphonenumber","code":null},"user.email.missing":{"type":"warning","key":"user.email.missing","message":"Us

java - 使用 Jackson 在 json 中以毫秒为单位的 ISO8601

importcom.fasterxml.jackson.databind.util.ISO8601DateFormat;objectMapper.setDateFormat(newISO8601DateFormat());很好,但这会忽略毫秒,我如何在不使用非线程安全的SimpleDateFormatter的情况下将它们放入日期中?https://github.com/FasterXML/jackson-databind/blob/master/src/main/java/com/fasterxml/jackson/databind/util/ISO8601DateFormat.jav

Java 和@annotations

在使用Java注释时,有些事情我不确定是否理解。这是一个例子:我创建了一个@Log注释并用它添加了一些功能(每个用@Log注释的方法在执行该方法之前都会运行一些日志)。现在我正在创建一个新的@SuperLog注释,如下所示:@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)@Logpublic@interfaceSuperLog{............}这个@SuperLog必须提供@Log所做的所有内容,以及一些特定于@SuperLog的额外内容。不幸的是,当我执行一些用@SuperLog注释的方法时,特定于

java - 使用 Jackson 反序列化数组

我有类似JSON-RPC客户端的东西,但我在反序列化时遇到了问题传入的json字符串到我的java对象中。传入的json格式为:{"value":"xxxx","type":"xxxx"}我要反序列化的对象:@JsonAutoDetect@JsonDeserialize()publicclassReturnValue{privateObjectvalue;privateStringtype;@JsonCreatorpublicReturnValue(@JsonProperty("value")Stringval,@JsonProperty("type")Stringtype){valu

java - 如何使用 Jackson 的本地化小数点分隔符反序列化浮点值

我正在用Jackson解析的输入流包含纬度和经度值,例如此处:{"name":"product23","latitude":"52,48264","longitude":"13,31822"}出于某种原因,服务器使用逗号作为产生InvalidFormatException的小数点分隔符。由于我无法更改服务器输出格式,因此我想教Jackson的ObjectMapper来处理这些情况。相关代码如下:publicstaticObjectgetProducts(finalStringinputStream){ObjectMapperobjectMapper=newObjectMapper();

java - 冒号的含义(:) inside @Path annotation

我是Restful服务的新手。我正在查看代码并找到了这一行@GET@Path("{image:image/.*}")谁能解释一下上述语法的含义和用法? 最佳答案 @Path符号支持普通字符串匹配路径或正则表达式匹配模式。在你的情况下@Path("{image:image/.*}")似乎只是匹配的模式Pathparam{image}withanypatternlikeimage/.*,whichbasicallytranslatestoimage/anything,anythingheredoesnotrefertotheword'a

java - Jackson:使用嵌套对象将对象序列化为 JSON,将子字段合并到所属类中

假设我有如下所示的Java类:publicclassA{publicStringname;publicBb;}publicclassB{publicintfoo;publicStringbar;}我想将A的实例序列化为JSON。我将使用Jackson中的ObjectMapper类:Aa=newA(...);Stringjson=newObjectMapper().writeValueAsString(a);使用此代码,我的JSON将如下所示:{"name":"MyExample","b":{"foo":1,"bar":"something"}}相反,我想注释我的Java类,以便生成的J