草庐IT

jackson-annotations

全部标签

Java JSON -Jackson- 嵌套元素

我的JSON字符串有嵌套值。有点像[{"listed_count":1720,"status":{"retweet_count":78}}]"我想要retweet_count的值。我正在使用Jackson。下面的代码输出“{retweet_count=78}”而不是78。我想知道我是否可以像PHP那样获取嵌套值,即status->retweet_count。谢谢。importjava.io.IOException;importjava.util.List;importjava.util.Map;importorg.codehaus.jackson.map.ObjectMapper;im

java - reflect.Field.annotations 始终为空

我正在尝试使用反射和注释。出于某种原因,每当我向字段(或类或方法)添加注释并使用反射查看该字段时,我都会看到它的annotations字段为空。例如,这段代码:publicclassTest{publicstaticvoidmain(String[]args)throwsNoSuchFieldException,SecurityException{System.out.println(Test.class.getField("bl").getAnnotations().length);}@annopublicintbl;public@interfaceanno{}}打印0。顺便说一句,

java - jackson 试图将 json 反序列化为类型对象列表

我正在尝试使用Jackson反序列化一个对象的属性,该对象是一个类型对象列表。当我尝试这样做时出现以下错误Cannotinstantiatevalueoftype[maptype;classjava.util.HashMap,[simpletype,classjava.lang.String]->[simpletype,classjava.lang.String]]fromJSONString;nosingle-Stringconstructor/factorymethod到目前为止,我有以下内容,但它似乎不起作用。Terms.class@JsonDeserialize(as=Json

java - 在 Jackson 的 ObjectMapper 中动态启用/禁用 UNWRAP_ROOT_VALUE 和 WRAP_ROOT_VALUE?

有没有办法动态启用/禁用Jackson的ObjectMapper中的UNWRAP_ROOT_VALUE和WRAP_ROOT_VALUE。我必须根据调用的服务启用/禁用这些属性,有些请求需要JsonRootName而有些则不需要。我在需要它的类中有@JsonRootName注释。我有一个扩展Jackson对象映射器的自定义ObjectMapper类。我正在调用一种方法来根据调用的服务启用/禁用属性,但它似乎不起作用。publicvoidsetWrapValue(booleanwrap){finalAnnotationIntrospectorintrospector=newJacksonA

java - Ant 警告 : Implicitly compiled files were not subject to annotation processing

我在运行Ant构建脚本(Ant1.8.2、Java1.6)时收到此警告。[javac]warning:Implicitlycompiledfileswerenotsubjecttoannotationprocessing.[javac]Use-proc:nonetodisableannotationprocessingor-implicittospecifyapolicyforimplicitcompilation.[javac]1warning添加产生:[javac]error:Classnames,'implicit',areonlyacceptedifannotationproc

java - 使用 uberjar 中的 Jersey 和 Jackson 时不支持的媒体类型

我目前面临Jersey和Jackson的问题,我无法找到解决方案:当我尝试从JSON序列化一个POJO作为Jersey端点中的POST参数时,如果出现以下情况,它会返回错误我从uberjar中调用它。如果我在从Eclipse启动主方法后使用相同的wget调用,则一切正常,并且我得到了预期的答案。我搜索过其他人在使用Jersey和后参数应用程序类型时遇到问题,例如Error415UnsupportedMediaType:POSTnotreachingRESTifJSON,butitdoesifXML和JAX-RS:Howtoautomaticallyserializeacollectio

java - 使用带有泛型的 Jackson ObjectMapper 到 POJO 而不是 LinkedHashMap

我正在使用Jersey定义如下服务:@Path("/studentIds")publicvoidwriteList(JsonArraystudentIds){//iterateoverstudentIdsandsavethem}JsonArray在哪里:publicclassJsonArrayextendsArrayList{publicJsonArray(Stringv)throwsIOException{ObjectMapperobjectMapper=newObjectMapper(newMappingJsonFactory());TypeReference>typeRef=ne

java - Jersey & Jackson - 修改 Jackson 输出的资源

我目前正在使用Jersey&Jackson创建REST服务。现在,当Resource方法生成application/json并返回一个POJO时,它会正确地将对象序列化为JSON并将响应返回给客户端。我现在要做的是设置Jersey,这样当查询参数出现时(比如说“缩进”),我可以告诉Jackson以“更漂亮的格式,也就是缩进”序列化JSON。您可以通过使用SerializationConfig.Feature.INDENT_OUTPUT配置JSON映射器轻松告诉Jackson执行此操作。问题是,我如何根据每个请求获取查询参数并使用它来修改Jackson的输出?

java - 我可以自定义 Jackson 错误消息吗?

我有一个JacksonMappingException,我用它来为用户产生错误:publicMap>>getErrors(JsonMappingExceptione){Map>>errors=newHashMap();List>badFields=newArrayList();for(Referenceref:e.getPath()){MapbadField=newHashMap();badField.put("field",ref.getFieldName());badField.put("description",e.getOriginalMessage());badFields.

java - 有没有办法从元注释中注入(inject) Jackson 注释值,类似于 Spring 的 AliasFor 注释?

我们正在使用@JacksonAnnotationsInside并希望使用元注释从类中注入(inject)一个属性。即我们有一个带有@JsonTypeInfo()的元注解,并希望通过聚合注解注入(inject)defaultImpl。这是我尝试使用的注释:@Inherited@JacksonAnnotationsInside@Retention(RetentionPolicy.RUNTIME)@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS,include=JsonTypeInfo.As.PROPERTY,property="@class")//,defau