- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
您好,我在将 Jackson JSON 处理器与 ObjectMapper 类一起使用时遇到了一个棘手的问题。这是我的测试类,应该将对象 (UserHeader) 序列化为 Json 字符串。
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
public class TestJson {
public static void main(String[] args) throws Exception {
ObjectMapper mapper = new ObjectMapper();
UserHeader userHeader = new UserHeader();
userHeader.setFirstName("A");
userHeader.setLastName("A1");
userHeader.setSystem("2A");
mapper.configure(SerializationConfig.Feature.USE_ANNOTATIONS, false);
StringWriter sw = new StringWriter();
mapper.writeValue(sw, userHeader);
System.out.println(sw.toString());
}
}
这是我的 UserHeader 类,带有从不同的 ObjectMapper(不是这个)使用的注释
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.codehaus.jackson.map.annotate.JsonSerialize.Typing;
@JsonSerialize(typing=Typing.STATIC)
public class UserHeader implements Serializable,LoggedObject, MessagesInterface {
private static final long serialVersionUID = 1L;
private String system;
private String userName;
private String firstName;
private String lastName;
private List<Scrivania> scrivanie;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@JsonProperty("Nome utente")
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
@JsonProperty("Cognome utente")
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@JsonProperty("Scrivanie associate")
public List<Scrivania> getScrivanie() {
return scrivanie;
}
public void setScrivanie(List<Scrivania> scrivanie) {
this.scrivanie = scrivanie;
}
@JsonProperty("Sistema (IAM o EDOC)")
public String getSystem() {
return system;
}
public void setSystem(String system) {
this.system = system;
}
@Override
@JsonIgnore
public String getObjectId() {
return this.userName;
}
@Override
@JsonIgnore
public Object getObjectData() {
try {
return this.clone();
}
catch (Exception e) {
return null;
}
}
@Override
public String getName() {
return this.userName;
}
}
但是,如果我运行 main 方法,系统会返回给我这个异常:
Exception in thread "main" java.lang.NullPointerException
at org.codehaus.jackson.map.introspect.AnnotatedClass.resolveClassAnnotations(AnnotatedClass.java:295)
at org.codehaus.jackson.map.introspect.AnnotatedClass.construct(AnnotatedClass.java:141)
at org.codehaus.jackson.map.introspect.BasicClassIntrospector.forClassAnnotations(BasicClassIntrospector.java:185)
at org.codehaus.jackson.map.introspect.BasicClassIntrospector.forClassAnnotations(BasicClassIntrospector.java:15)
at org.codehaus.jackson.map.SerializationConfig.introspectClassAnnotations(SerializationConfig.java:661)
at org.codehaus.jackson.map.ser.BasicSerializerFactory.createTypeSerializer(BasicSerializerFactory.java:180)
at org.codehaus.jackson.map.ser.BeanSerializerFactory.findPropertyContentTypeSerializer(BeanSerializerFactory.java:406)
at org.codehaus.jackson.map.ser.BeanSerializerFactory._constructWriter(BeanSerializerFactory.java:778)
at org.codehaus.jackson.map.ser.BeanSerializerFactory.findBeanProperties(BeanSerializerFactory.java:608)
at org.codehaus.jackson.map.ser.BeanSerializerFactory.constructBeanSerializer(BeanSerializerFactory.java:436)
at org.codehaus.jackson.map.ser.BeanSerializerFactory.findBeanSerializer(BeanSerializerFactory.java:349)
at org.codehaus.jackson.map.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:295)
at org.codehaus.jackson.map.ser.StdSerializerProvider._createUntypedSerializer(StdSerializerProvider.java:778)
at org.codehaus.jackson.map.ser.StdSerializerProvider._createAndCacheUntypedSerializer(StdSerializerProvider.java:731)
at org.codehaus.jackson.map.ser.StdSerializerProvider.findValueSerializer(StdSerializerProvider.java:369)
at http://stackoverflow.com/questions/6661717/how-to-process-an-invalid-value-with-jackson-json-processororg.codehaus.jackson.map.ser.StdSerializerProvider.findTypedValueSerializer(StdSerializerProvider.java:452)
at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:597)
at org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:280)
at org.codehaus.jackson.map.ObjectMapper._configAndWriteValue(ObjectMapper.java:2260)
at org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:1813)
at it.unina.edoc.json.TestJson.main(TestJson.java:65)
我不知道这个异常,因为由于 USE_ANNOTATION false 配置,@Annotations 应该被忽略。此外,如果我将 USE_ANNOTATION 设置为 true,错误就会消失。我的构建路径上有这些 jar :
最佳答案
使用 DeserializationConfig.Feature.USE_ANNOTATIONS 属性(设置为 false)将导致 JACKSON DeserializerConfig 类使用 NopAnnotationIntrospector。然后将使用此 NopAnnotationIntrospector 解析类的注释。 NopAnnotationIntrospector 将在每个 isHandled 请求上为类上的任何注释返回 false - 实际上不会在进一步处理中使用此注释。
所以 - 系统仍然“检查”注释 - 在这种情况下必须在类路径上。由于 Android 不提供任何 jaxb-api 注释,这会导致 NoClassDefFoundError。
我预计 USE_ANNOTATIONS = false 会让 JACKSON 完全忽略任何注释 - 但不幸的是它没有。我现在将使用 Jackson Streaming API 来解析 JSON 字符串,而不是使用 JACKSON 数据绑定(bind)功能。
关于java - Jackson JSON 处理器 : SerializationConfig. Feature.USE_ANNOTATIONS 设置为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10418352/
好的,所以我刚刚开始尝试将 BDD 用于我们正在进行的一些新开发,并且我为日志查看器功能写了一个这样的故事: 故事:用户查看工作流执行日志 As a user I want to review the
我正在尝试使用 TensorFlow 编写一个简单的深度机器学习模型。我正在使用我在 Excel 中制作的玩具数据集,只是为了让模型工作并接受数据。我的代码如下: import pandas as p
我是机器学习的初学者。我很困惑如何将数据集的不同特征组合成一个特征。 例如,我在 Python Pandas 数据框架中有一个数据集,其特征如下: movie unknown actio
我正在做一项功能调查,为一个研究项目做准备。 说出难以优化的主流语言或语言功能,以及为什么该功能值得或不值得付出代价,或者只是用轶事证据驳斥我下面的理论。在有人将其标记为主观之前,我要求提供语言或功能
这是一个有点哲学问题。我正在为我的软件添加一个小功能,我认为大多数用户都会使用它,但他们使用该软件的次数可能只有 10%。换句话说,该软件没有它 3 个月就很好,但是有 4 或 5 个用户要求它,我同
我开始使用 git flow。我创建了一个功能: git flow feature start eval 然后我做了一些工作并添加并提交了更改: git add (files) git commit
pull 请求是内置在 Git 中还是 GitHub 虚构的概念? 最佳答案 概念和该概念的实现之间存在区别。 “请求 pull ”的概念是 DVCS 系统有别于传统版本控制系统的部分原因。使用传统的
研究该主题,可以找到作者使用“词袋”模型进行图像分类/检索的论文,而其他人则使用“特征袋”模型进行类似任务。 尽管我对所涉及的方法有基本的了解(检测和提取视觉词、构建视觉词典、使用机器学习训练分类器)
有时一首歌会有不止一个艺术家。例如,Jay-z 的新歌“A Star is Born”以艺术家 Cole 为主角,因此在目录中会被列为“Jay-z(以 Cole 为主角)- A Star is Bor
This question already has an answer here: How do I 'pass down' feature flags to subdependencies in C
This question and answer演示当使用 scikit-learn 的专用特征选择例程之一执行特征选择时,可以按如下方式检索所选特征的名称: np.asarray(vectorize
例如,我定义了 2 个没有依赖关系的特性: [features] default = [] py2 = [] py3 = [] 基于选定的功能 (--features py3) 我想为依赖项 (cpy
我正在完成一个小型 Wordpress“杂志”类型网站的定制。由于我是 PHP 的新手,我遇到了一些需要帮助的问题。 我有一个“首屏,主要特色区域,包含 3 张图片”和帖子标题的小摘录。在首屏下,我在
我已经为 Windows 10 创建了一个 C# 应用程序。它是通过使用 WIX 生成的 MSI 安装的。但是,当它为一台机器上的一个用户安装时,并非出于我的意图,它不会为同一台机器上的其他用户安装。
在 ArcGIS Runtime Java API 文档中,有一个 identifyLayersAsync() method . 来自文档: Asynchronously identifies the
我是 GIT 和 GIT-Flow 的新手。 [在我的 python-django 项目上] 我做了什么: git flow feature start new_feature # perform s
我是 Angular 的新手,我正在尝试使用 Angular/d3 构建德国 map 。 map 数据存储在 Topojson 文件 plz_map_ger.json 中: { "type": "To
我一直在使用 503 服务不可用 或停机维护。 但是一些 http 客户端库,即 axios 将 503 视为可重试错误。 如果由于高负载而产生响应,则重试它是有意义的,但 503 也适合功能切换情况
要列出您希望包含在生成的 features.xml 中的一堆包,文档说: bundles File A properties file that contains a list of bund
我在 Visual Studio 2010 下开发 C# T4 预处理模板时遇到以下编译错误: A template containing a class feature must end with
我是一名优秀的程序员,十分优秀!