使用GSON反序列化非泛型类型的ArrayList

2023-12-30

编辑:空指针是由于格式错误的 json 造成的。

Hi,

我正在尝试将 json 数据反序列化为 Restaurant 对象的 ArrayList,如下所示(受我在https://sites.google.com/site/gson/gson-user-guide#TOC-Collections-Examples https://sites.google.com/site/gson/gson-user-guide#TOC-Collections-Examples):

Type listType = new TypeToken<ArrayList<Restaurant>>() {}.getType();
ArrayList<Restaurant> objList = gson.fromJson( r, listType );         //(line 141)

但这给出了帖子末尾显示的错误。

listType 中似乎有一些空指针...这是 listType 的手表:

"listType"= ImplForType  (id=830061042288)  
    args= ListOfTypes  (id=830061040752)    
        list= null  
        resolvedTypes= Type[1]  (id=830061042800)   
    loader= PathClassLoader  (id=830060323064)  
    ownerType0= null    
    ownerTypeRes= null  
    rawType= Class (java.util.ArrayList) (id=830002592616)  
    rawTypeName= "java.util.ArrayList" (id=830061042328)    

我的代码有什么问题吗?我怎样才能做到这一点?

Thanks

Jul

07-06 17:38:48.825: DEBUG/dalvikvm(1337):   JDWP invocation returning with exceptObj=0x4364a4a0
07-06 17:39:00.525: DEBUG/dalvikvm(1337):   JDWP invocation returning with exceptObj=0x4364b1e8
07-06 17:39:15.879: WARN/dalvikvm(1337): threadid=17: thread exiting with uncaught exception (group=0x4000fe70)
07-06 17:39:15.885: ERROR/AndroidRuntime(1337): Uncaught handler: thread AsyncTask #1 exiting due to uncaught exception
07-06 17:39:16.135: DEBUG/dalvikvm(1337): GC freed 3322 objects / 261128 bytes in 114ms
07-06 17:39:16.225: ERROR/AndroidRuntime(1337): java.lang.RuntimeException: An error occured while executing doInBackground()
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at android.os.AsyncTask$3.done(AsyncTask.java:200)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:234)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:258)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at java.util.concurrent.FutureTask.run(FutureTask.java:122)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:648)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:673)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at java.lang.Thread.run(Thread.java:1058)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337): Caused by: java.lang.NullPointerException
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at org.apache.harmony.luni.lang.reflect.ListOfTypes.length(ListOfTypes.java:47)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at org.apache.harmony.luni.lang.reflect.ImplForType.toString(ImplForType.java:83)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at java.lang.StringBuilder.append(StringBuilder.java:209)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:56)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at com.google.gson.JsonDeserializationVisitor.visitUsingCustomHandler(JsonDeserializationVisitor.java:65)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:96)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at com.google.gson.JsonDeserializationContextDefault.fromJsonObject(JsonDeserializationContextDefault.java:73)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:49)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at com.google.gson.Gson.fromJson(Gson.java:379)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at org.digitalfarm.atable.Atable$GetRestaurantData.doInBackground(Atable.java:141)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at org.digitalfarm.atable.Atable$GetRestaurantData.doInBackground(Atable.java:1)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at android.os.AsyncTask$2.call(AsyncTask.java:185)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:256)
07-06 17:39:16.225: ERROR/AndroidRuntime(1337):     ... 4 more

这是我们在姜饼中修复的一个已知错误;看http://code.google.com/p/android/issues/detail?id=6636 http://code.google.com/p/android/issues/detail?id=6636

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

使用GSON反序列化非泛型类型的ArrayList 的相关文章

  • Eclipse Android 项目总是在调试中启动

    我觉得问这个问题很愚蠢 遇到这个问题更愚蠢 我有一个 Android 项目 到目前为止一直运行良好 但几天前 在我没有做任何我所知道的特别事情的情况下 无论我尝试什么 我的项目总是在调试中启动自己 单击调试或运行会给我相同的结果 我尝试查看
  • 如何使用 android:layout 属性实例化自定义首选项的布局

    我可以通过以下方式设置适当的布局以供偏好android layout属性 举个例子
  • Android 卷页动画

    我对 Android 动画有点陌生 目前我正在开发一个故事活动 需要像 iPhone 中那样使用卷页动画 我发现 iPhone 中有一种方法可以做到这一点 但我仍然找不到在android中做的方法 所以请帮我解决这个问题 谢谢大家 谷歌代码
  • 如何使用 WifiEnterpriseConfig 设置“使用系统证书”

    我想为我的应用程序的用户配置企业 WiFi 网络 因此 用户必须输入用户名和密码 其余的由应用程序处理 身份验证由 RADIUS 服务器 FreeRadius 3 处理 该服务器使用 LetsEncrypt 颁发的证书 因此无需导入我自己的
  • PopupWindow onitemclick 中的 Android Listview 在某些设备上不起作用

    我的 ListView 在 PopupWindow 内 当我显示 PopupWindow 并单击设备 ASUS K00z 中的 Listview 行时 fonepad 工作得很好 但在 HTC Z715e 中不起作用 项目单击事件未触发 1
  • 对话框片段嵌入取决于设备

    在我的应用程序中 用户从联系人或通话记录中选择电话号码 选择联系人非常简单 并且在手机和平 板电脑上都可以很好地工作 i e 在手机上会弹出新的全屏活动 在桌子上我会看到带有联系人列表的漂亮弹出对话框 似乎无法从通话记录中选择电话号码 因此
  • Android:如何让设备只运行一个应用程序?

    我有一个客户项目 我必须制作单任务 Android 设备 客户无法逃脱我公司开发的应用程序 此外 客户无法启动任何其他应用程序 而我们的应用程序会在设备启动时启动 总体而言 客户能够使用设备执行的所有操作就是运行我们的应用程序 除了 roo
  • 无法在 Android 上编译 avahi

    我是交叉编译的新手 我被分配了使用android补丁的任务http avahi org ticket 354 http avahi org ticket 354将 avahi 核心编译为 android ndk build avahi co
  • 如何在其他呼叫运行时以编程方式合并呼叫(电话会议)

    我的要求是这样的 假设我当时正在拨打一个号码 并且我想以编程方式拨打另一个号码 到目前为止 我所做的是 当某些呼叫已经进行时 我能够呼叫特定号码 例如 假设我正在拨打号码 123 1 分钟后 通过使用Alarm Manger我触发一个事件来
  • Android WebView文件上传

    我正在开发一个 Android 应用程序 基本上它是一个WebView和一个进度条 Facebook 的移动网站 m facebook com 已加载到WebView 当我单击 选择文件 按钮上传图像时 没有任何反应 我已经尝试了所有的解决
  • 动态地将textView添加到线性布局中

    我在这里的某个地方读过这篇文章 但我完全迷失了 但我需要一些帮助 我的应用程序正在将列名称从 sqlite 拉入数组中 我想创建一个文本视图并为每个视图编辑文本 通过数组的大小 我记得在某处读过 您可以将 textViews 变量名称视为数
  • ProgressBar.setInminateDrawable() 不起作用

    当我尝试更改我的 indeteminateDrawable 进度条就消失了 我必须更改我的进度条的可绘制对象 我尝试了invalidate requestLayout等 我不知道如何解决它 谢谢 这里的代码 progressBar setI
  • 如何使用共享首选项在两个 Android 应用程序之间共享数据?

    我有两个应用程序 App1 和 App2 我想使用共享首选项在 App1 中保存数据并在 App2 中访问 反之亦然 我可以在 App1 中保存数据并在 App2 中访问数据 但反之则不行 这就是我现在正在做的 在清单中 android s
  • 如何使用 MotionLayout 调整 TextView 的大小

    我正在尝试创建一个CollapsingToolbar动画使用MotionLayout 我已经成功地将所有内容设置为动画 使其表现得像CollapsingToolbar具有高度的灵活性 这意味着我可以轻松创建很棒的动画 而无需编写大量代码 我
  • 将触摸事件从 NestedScrollView 传递到父视图

    我在 NestedScrollView 下方有一个 ViewPager 宽度一些顶部填充 以及 ClipToPadding false 和透明背景 如图像 我的 ViewPager 无法获取触摸事件并且无法工作 我怎么解决这个问题 我无法更
  • 分离 Fragment 和删除 Fragment 有什么区别?

    在 Android 文档中碎片交易 http developer android com reference android app FragmentTransaction html我注意到两种非常相似的方法 detach and remo
  • 如何关闭导航抽屉以使用返回主页图标按钮?

    我也将操作栏与搜索栏一起使用 并且我需要像后退按钮一样使用 ActionBar ico 但我也在使用导航抽屉 如何关闭 隐藏 禁用导航抽屉菜单以使用后退按钮 我的 ActionBar 代码 Override public boolean o
  • 如果我的应用程序安装在 SD 卡上,私人数据也在那里吗?

    我假设应用程序的私有数据 例如 SharedPreferences 和 SQLite 数据库 位于手机的内部存储而不是 SD 卡上 即使应用程序本身安装在 SD 卡上 我在任何地方都找不到对此的简单明确的确认 有人可以确认一下吗 是的 私有
  • Android - 如何简单地拖放按钮?

    我在这里找到了一个适合初学者的教程 http androidrox wordpress com 2011 05 13 android sample app drag and drop image using touch http andro
  • Android 版本低于 Lollipop 时出现 java.lang.NoClassDefFoundError

    我有一台运行 Android 21 的 Nexus 5 设备 我正在测试我的项目 没有任何问题 但是 如果我使用 Google API 19 在模拟器上进行测试 则会显示错误java lang NoClassDefFoundError 如果

随机推荐

  • JAX-WS servlet 过滤器异常

    我有一个通过 SOAP 进行通信的客户端 服务器应用程序 服务器端应用程序是一个 Java EE 应用程序 它使用 JAX WS 公开 Web 服务 我有一个 Servlet 过滤器设置 用于在调用服务之前执行某些检查 除了异常处理之外 这
  • 使用SAS和mkdir在windows中创建目录结构

    我想在 Windows 中从 SAS 中创建目录结构 最好使用允许我指定 UNC 命名约定的方法 例如 computername downloads x y z 我在网上看到很多使用 DOS 的 SAS 示例mkdir通过调用命令 syse
  • 漏洞? Stargazer 无法使用“省略”选项正确显示固定效应/因子标签?

    当我生成一个表时stargazer并省略固定效应 然后指定omit labels选项 stargazer 版本 5 2 2 每列显示 否 这是一个例子 library stargazer generate example data set
  • ViewPager2/Tabs 的 ViewModel 状态问题

    我遵循 MVVM 模式 这意味着每个片段都有一个 ViewModel I added two使用 ViewPager2 进行选项卡 我的适配器如下所示 Override public Fragment createFragment int
  • 如何在 iOS Simulator 9.1 上启用强制触摸压力

    带有 Xcode 7 1 的新 9 1 模拟器具有模拟 iPhone 6s 6s 等强制触摸的功能 但该选项呈灰色 禁用 iOS 模拟器 gt 硬件 gt 强制触摸压力 已禁用 截图供参考 有人知道如何启用此选项吗 注意 我在 iPhone
  • 使用 printStackTrace() 来处理异常是一个坏主意吗?

    在像这样的 Android 异常中使用 printStackTrace 是一个坏主意吗 catch Exception e e printStackTrace 我相信这就是您所需要的 catch Exception e Log e TAG
  • 如何在 Obj-C 代码中引用环境变量

    我在 Xcode 源代码树中定义了一个名为 MY SRC DIR 的路径变量 我想获取这个环境变量的值并将其放入 obj c 代码中的 NSString 中 例如 NSString getSourceDir return MY SRC DI
  • 在 React 中从数组中删除项目时出现意外行为

    我到处寻找这个问题的答案 但我只需要一些人的帮助 我有一个简单的表单 用户可以在其中添加其他字段 用户还可以删除不再相关的字段 我遇到的问题是删除字段 这些字段是从组件状态中的数组呈现的 但是当我尝试从数组中删除项目时 它始终是数组中的最后
  • 本地开发 Alexa 技能时出现 Dynamo 错误“ConfigError:配置中缺少区域”

    在本地开发和调试 Alexa 技能时使用定制工具 https bespoken tools 连接到 Dynamo 时发生错误 使用Alexa Node js SDK https github com alexa alexa skills k
  • 使用 BPL 加载 Delphi 对象运行时

    我在一个单位上课 通常 当我改变其方法的算法时 我必须重新编译它并整体交付补丁 我想使用 DLL 创建类的实例 在delphi about com搜索后 我发现可以使用BPL代替DLL 它是 Delphi 的 DLL 问题是我发现的几乎所有
  • 如何从图像中提取不同边缘强度的矩形?

    我正在尝试从支票图像中提取帐号 我的逻辑是 我试图找到包含帐号的矩形 对边界矩形进行切片 然后将切片输入 OCR 中以从中获取文本 我面临的问题是 当矩形不是很突出且颜色较浅时 我无法获得矩形轮廓 因为边缘未完全连接 如何克服这个问题 我尝
  • Angular2:HammerJS 滑动 md-tab-group

    我已经实施了HammerJS in my Angular2webapp 我也测试了example https scotch io tutorials using hammerjs touch gesture in angular 2 the
  • Plotly:如何在同一个子图上显示 2 个以上的 x 轴标题/范围?

    我正在使用 Plotly 并使用共享 y 轴和不同的 x 轴制作散点图子图 我尝试使用图形对象 fig layout data index 语法来显示多个堆叠的 x 轴及其各自的范围 我仅通过将 顶部 和 底部 分配给图形布局的侧面属性来成
  • Tomcat 应用程序 Profiler for Eclipse indigo

    我尝试在 eclipse indigo 中安装 TPTP 分析器 但是它不起作用我收到以下错误 Eclipse TPTP 不支持您的平台 综合代理 控制器将被禁用 要在受支持的主机上进行分析 请 在该主机上安装并使用独立代理控制器 我不知道
  • hadoop 在运行我的程序时显示以下消息。这是什么意思?

    我正在运行 hadoop 程序 收到以下消息 这是什么意思 我需要担心这个消息吗 INFO hdfs DFSClient Exception in createBlockOutputStream java io EOFException P
  • 将 Swift Package 添加到自定义框架

    创建具有 SPM 依赖项的框架相当新鲜 因此 我创建了一个新的框架项目 添加了一些类 文件以及 SPM 依赖项 CocoaLumberjack 记录器 框架编译良好 当我寻找我计划嵌入到其他项目中的框架产品时 我看到它位于我的产品文件夹中
  • Jquery:获取带有完整路径的图标

    我想使用 Jquery 从网站获取网站图标的链接 我只是使用 link rel shortcut icon attr href 而且效果很好 但是 我并不总是有一条完整的路径 例如我可以有类似的东西 http mywebsite com m
  • C 中 char[] 和 char * 之间的区别[重复]

    这个问题在这里已经有答案了 C 中 char 和 char 之间有什么区别 据我所知 两者都创建了 make s 指向字符数组的指针 然而 char s hello s 3 a printf n s n s prints helao whi
  • 如何在不同的Android应用程序之间双向传递数据?

    最简单的方法是什么将字符串变量从一个应用程序传递到另一个应用程序并返回值 我可以访问这两个应用程序的源代码 但它必须是两个不同的应用程序 我尝试使用 startActivityForResult 但这似乎只适用于同一应用程序的活动之间 当从
  • 使用GSON反序列化非泛型类型的ArrayList

    编辑 空指针是由于格式错误的 json 造成的 Hi 我正在尝试将 json 数据反序列化为 Restaurant 对象的 ArrayList 如下所示 受我在https sites google com site gson gson us