- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 Jackson 将我的 json 数据转换为 POJO 对象。这是 MainActivity 和我的 POJO 类代码。我基本上收到 JsonMappingException 错误。我还附上了整个日志。
主要 Activity .java :
ObjectMapper mapper = new ObjectMapper();
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
try {
List<Entries> results = mapper.readValue(new URL("http://collegewires.com/android/jacksoncw.json"), new TypeReference<List<Entries>>(){});
for(int i=0;i<results.size();++i){
System.out.println(results.get(i).getName());
out = out + " ## " + results.get(i).getName();
txt.setText("1111");
}
} catch (JsonParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Entries.java(这是 POJO)
package com.collegewires.jackson;
public class Entries {
public Entries(){
}
private String id, name, email, address, gender;
private Phone phone;
public Phone getPhone() {
return phone;
}
public void setPhone(Phone phone) {
this.phone = phone;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Entries:{id: " + id + ", name: " + name +
", email: " + email + ", address: " + address + ", gender: " + gender + ", phone: " + phone + "}";
}
public class Phone {
public Phone(){
}
public String mobile, home, office;
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getHome() {
return home;
}
public void setHome(String home) {
this.home = home;
}
public String getOffice() {
return office;
}
public void setOffice(String office) {
this.office = office;
}
@Override
public String toString() {
return "Phone:{mobile: " + mobile + ", home: " + home +
", office: " + office + "}";
}
}
}
现在,我在日志中收到以下错误。因此,我无法继续我的工作。这是日志:
07-12 12:06:13.206: W/System.err(30593):
com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token
07-12 12:06:13.206: W/System.err(30593): at [Source: http://collegewires.com/android/jacksoncw.json; line: 1, column: 1]
07-12 12:06:13.211: W/System.err(30593): at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:575)
07-12 12:06:13.211: W/System.err(30593): at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:569)
07-12 12:06:13.211: W/System.err(30593): at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.handleNonArray(CollectionDeserializer.java:259)
07-12 12:06:13.211: W/System.err(30593): at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:217)
07-12 12:06:13.211: W/System.err(30593): at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:207)
07-12 12:06:13.211: W/System.err(30593): at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:23)
07-12 12:06:13.211: W/System.err(30593): at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2888)
07-12 12:06:13.211: W/System.err(30593): at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2018)
07-12 12:06:13.211: W/System.err(30593): at com.collegewires.jackson.MainActivity.onCreate(MainActivity.java:81)
07-12 12:06:13.211: W/System.err(30593): at android.app.Activity.performCreate(Activity.java:5250)
07-12 12:06:13.211: W/System.err(30593): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
07-12 12:06:13.211: W/System.err(30593): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
07-12 12:06:13.211: W/System.err(30593): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2297)
07-12 12:06:13.211: W/System.err(30593): at android.app.ActivityThread.access$700(ActivityThread.java:152)
07-12 12:06:13.211: W/System.err(30593): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1282)
07-12 12:06:13.211: W/System.err(30593): at android.os.Handler.dispatchMessage(Handler.java:99)
07-12 12:06:13.211: W/System.err(30593): at android.os.Looper.loop(Looper.java:137)
07-12 12:06:13.211: W/System.err(30593): at android.app.ActivityThread.main(ActivityThread.java:5328)
07-12 12:06:13.211: W/System.err(30593): at java.lang.reflect.Method.invokeNative(Native Method)
07-12 12:06:13.211: W/System.err(30593): at java.lang.reflect.Method.invoke(Method.java:511)
07-12 12:06:13.211: W/System.err(30593): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
07-12 12:06:13.211: W/System.err(30593): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
07-12 12:06:13.211: W/System.err(30593): at dalvik.system.NativeStart.main(Native Method)
07-12 12:06:13.251: D/libEGL(30593): loaded /vendor/lib/egl/libEGL_POWERVR_SGX544_115.so
07-12 12:06:13.261: D/libEGL(30593): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX544_115.so
07-12 12:06:13.266: D/libEGL(30593): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX544_115.so
07-12 12:06:13.271: I/(30593): !@IMGSRV: DATE: 2013.04.23(11:19:33) | BUILDER: LSI3D | REVISION: e9cd1377d8225457ae40
07-12 12:06:13.346: D/OpenGLRenderer(30593): Enabling debug mode 0
07-12 12:06:31.521: W/IInputConnectionWrapper(30593): setComposingText on inactive InputConnection
最佳答案
无法从 START_OBJECT token 中反序列化 java.util.ArrayList 的实例
这里的关键词是ArrayList 和START_OBJECT token。您不能将单个对象反序列化为对象数组。试着理解这样做的意义,你就会明白为什么。
您只能将 JSON 对象的数组反序列化为 POJO 的数组或集合。请注意,JSON 对象由 { }
大括号分隔,而数组由 [ ]
括号分隔,其中包含一些对象。
关于java - jackson JsonMappingException : Can not deserialize instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24709643/
我找不到关于 jackson 的ObjectMapper与其他映射器(例如dozer/mapStruct/modelMapping/etc)之间的区别的任何解释。所有文章都比较了dozer/mapSt
我正在使用Jackson来反序列化Kotlin数据类。我正在使用jackson-kotlin-module,但 jackson 却给我以下错误: Can not construct instance
我正在尝试将包从“com.fasterxml.jackson”重新定位到我自己的包(即“mypackage.com.fasterxml.jackson”),然后在我拥有的另一个 JAR 中使用它。 我
对于JSON对象,Subject: { "permissions":["foo", "bar"], ... } ...我想反序列化为: class Subject { priv
我正在使用 @JsonTypeInfo 和 @JsonSubTypes 来映射基于给定属性的解析子类。这是我想要解析的示例 JSON 的一个人为示例。 { "animals": [ { "
我们正在使用 dropwizard 版本 0.6.3。当我们尝试升级 0.7.0 版本时,我们在服务启动时收到此错误。 线程“main”中的异常 java.lang.VerifyError: clas
我正在尝试实现自定义解串器。因为我只想向默认反序列化器添加功能,所以我尝试在我的自定义反序列化器中存储默认反序列化器:我想使用默认反序列化 json,然后添加其他信息。 我正在尝试使用 BeanDes
我有一个这样的类(class): public class Person { private String name; public String getName(){ return
我有以下 Kotlin 数据类: data class TestObject( val boolField: Boolean, val stringField: Str
使用 Jackson 库,在 Eclipse 4.9.0 版本中出现以下错误 缺少工件 com.fasterxml.jackson.core:jackson-databind:bundle:2.9.6
我试图在我的应用程序中从azure实现keyvault,在为DefaultAzureCredentialBuilder()实现azure-identity:1.5.4 lib后,它会抛出链接错误,如下
我试图在我的应用程序中从azure实现keyvault,在为DefaultAzureCredentialBuilder()实现azure-identity:1.5.4 lib后,它会抛出链接错误,如下
我知道我们可以使用 Jackson MixIn 来重命名属性或忽略属性(参见示例 here )。但是可以添加属性吗? 添加的属性可以是: 一个常数(如版本号) 计算值(例如,如果源类具有 getWid
我有一个在 Wildfly 10 上运行的应用程序,它需要更新版本的 jackson。简单地更新 maven 依赖是行不通的。 Wildflys 自己的版本似乎干扰了... 有人有提示吗? 最佳答案
我在 Tomcat 休息应用程序中运行 Jersey 2.5.1 & Jackson。对于我最初将 POJO 简单地转换为 JSON 的用例,基本设置效果很好。集合很好地转换为 json 数组,如下所
有没有办法告诉 jackson 在序列化过程中忽略那些用非 jackson 注释注释的字段? 例如: @SomeAnnotation private String foo; 我知道有 jackson
我遇到了 jackson 序列化问题, map 中存在空值。显然,这是 Wildfly 9 使用的 Jackson 版本中的一个已知错误 ( https://issues.jboss.org/brow
给定一个像这样的 JSON 映射类: public class Person { @JsonProperty String getName() { ... } @JsonPro
如何让 Jackson 的 XMLMapper 在反序列化时读取根 xml 元素的名称? 我正在将输入 XML 反序列化为通用 Java 类、LinkedHashMap,然后反序列化为 JSON。我想
我对抽象类和 JSON 序列化和反序列化的对象引用有问题。抽象的问题如下所示: 我有一个由节点和边组成的图。每条边连接两个节点。节点可以是红色和绿色的。因此,有一个抽象类Node和两个派生类 RedN
我是一名优秀的程序员,十分优秀!