Jackson JsonMappingException:无法反序列化实例

2023-11-21

我正在尝试使用 Jackson 将 json 数据转换为 POJO 对象。这是 MainActivity 和我的 POJO 类代码。我基本上收到了 JsonMappingException 错误。我还附上了整个日志。

MainActivity.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

Can not deserialize instance of java.util.ArrayList out of START_OBJECT token

这里的关键词是数组列表 and START_OBJECT 令牌。您无法将单个对象反序列化为对象数组。试着理解这样做的意义,你就会明白为什么。

您只能反序列化arrayJSON 对象转换为 POJO 的数组或集合。请注意,虽然 JSON 对象由以下分隔{ }大括号,数组由以下分隔[ ]括号,里面有一些对象。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jackson JsonMappingException:无法反序列化实例 的相关文章

随机推荐

  • 使用 DLR 运行使用 CompileAssemblyFromSource 生成的代码?

    对此进行后续跟进很好的答案 我想知道 DLR 是否使用dynamic关键字可以允许以不太冗长的方式为生成的程序集编写代码 例如 上述答案的代码可以 using Microsoft CSharp CSharpCodeProvider foo
  • Pytorch - 在 softmax 层之后选择最佳概率

    我有一个使用 Pytorch 0 4 0 的逻辑回归模型 其中我的输入是高维的 我的输出必须是标量 0 1 or 2 我使用线性层与 softmax 层相结合来返回n x 3张量 其中每列表示输入属于三个类别之一的概率 0 1 or 2 但
  • 运行基于 OpenMPI 的库时出错

    我已经从 Ubuntu 中可用的标准 apt get install 安装了 openmpi 库 我运行一个调用 MPI 库的 python 代码 我收到以下错误 任何想法错误的根源是什么 是 OpenMPI 配置错误吗 如何解决这个问题
  • 如何查看WTForms验证错误?

    我正在编写一些基本测试 但测试失败了 def test new user registration self self client get user register form RegistrationForm email u email
  • fopen:无法打开流:Mac 上的 PHP 中的权限被拒绝 [重复]

    这个问题在这里已经有答案了 我写了这段代码 if file exists testfile rtf echo file exists else echo file doesn t exist fh fopen testfile rtf w
  • 如何在 Swift 中写入 Google Sheets

    我正在尝试通过以下方式写入 Google Sheets 文档这个谷歌API 但我没有取得太大成功 我什至不确定我是否遵循了正确的 api 因为它显示 Appscript 并且看起来像 Swift 我已经能够使用以下方法从工作表中读取数据 p
  • 当工作线程工作时,UI 变得不稳定

    我有一个手写识别应用程序 用户用手指绘画 该应用程序识别字符 识别引擎在具有尽可能低优先级的工作线程中运行 Thread MIN PRIORITY 它是纯粹的CPU 内存算法 没有任何I O 不过 当线程正在积极工作时 用户界面会变得相当不
  • 人类可读的 type_info.name() [重复]

    这个问题在这里已经有答案了 我编译了以下代码g 并得到输出 该输出写在注释中 template
  • Laravel 4 - 没有可用的猜测者问题

    我收到此错误 LogicException 无法猜测 mime 类型 因为没有可用的猜测器 您启用了 php fileinfo 扩展吗 我已经启用了 php fileinfo 扩展并重新启动了 Wamp Web 服务器 但我仍然无法解决这个
  • AsyncTask Android 示例

    我正在读关于AsyncTask 我尝试了下面的简单程序 但这似乎不起作用 我怎样才能让它发挥作用 public class AsyncTaskActivity extends Activity Button btn Called when
  • Firebase Listener 在空闲时间后无法识别或恢复连接

    我的项目是识别客户端是在线还是离线 我使用 Android Firebase 文档中提供的代码 该代码使用 info connected 中的 EventListener since I can connect from multiple
  • 从字符串源列表动态生成最短的正则表达式

    我有一堆 SKU 库存单位 它们代表一系列字符串 我想创建一个正则表达式来匹配它们 举例来说 如果我有 SKU var skus new BATPAG003 BATTWLP03 BATTWLP04 BATTWSP04 SPIFATB01 我
  • 在 Swift 3 中访问代码错误

    Xcode 8 beta 4 中的新功能 NSError桥接到 SwiftError协议类型 这会在处理失败时影响 StoreKitSKPaymentTransactions 您应该检查以确保没有因为事务被取消而发生错误 以了解是否向用户显
  • Spring REST - 将 GET 参数绑定到嵌套对象

    我知道你可以将 get 请求参数绑定到 pojo 例如 RequestMapping value reservation method RequestMethod GET produces MediaType APPLICATION JSO
  • 在字符串列表中的特定元素之前和之后插入元素

    当出现特定字符串时是否可以插入到列表中 例子 List north south east west south united 因此 每次出现字符串 south 时 列表都会插入一个项目 canada 在列表中元素 south 之前 Resu
  • [NodeJs][Sequelize] ReferenceError:初始化前无法访问“ModelName”

    目前我使用一个API实现节点 Js 13和 ORM续集 v5而这一切都在ES6 通过 package json 中的 type module 在这个项目中 当我尝试使用关联时出现问题 我有三个关联的模型 author js authorbo
  • 我如何推迟 jQuery Each 循环

    我在 jQuery 每个循环中执行 繁重 画布操作 导致较慢的设备 IE 和 iPad 有时变得完全无响应 所以我想我可以使用下划线 defer 将每个循环中的函数排队 例如 function handleAsset defer funct
  • Spark 可扩展性:我做错了什么?

    我正在使用 Spark 处理数据 它可以处理一天的数据 40G 但失败了OOM一周的数据 import pyspark import datetime import operator sc pyspark SparkContext sqc
  • 如何在 Android 版 Realm 中实现以下功能

    在我的应用程序中 我通常有一个加载器 它从 sqlite 加载数据 然后将其传递到它所附加的活动或片段 从那里将其设置在 absListView 的适配器中 然后将其呈现给用户 由于领域声明其对象不应该跨线程共享 如何在不从 UI 线程进行
  • Jackson JsonMappingException:无法反序列化实例

    我正在尝试使用 Jackson 将 json 数据转换为 POJO 对象 这是 MainActivity 和我的 POJO 类代码 我基本上收到了 JsonMappingException 错误 我还附上了整个日志 MainActivity