【问题标题】:How do I deserialize a json from a serialized Web Service using Android? [duplicate]如何使用 Android 从序列化 Web 服务中反序列化 json? [复制]
【发布时间】:2015-08-04 03:31:20
【问题描述】:

所以,我从网络服务获取了一个 json:

[{"id":1,"Home":{"id":11,"homtype":{"id":4,"name":"2-bedroom"}, "image":[71 ,73,70,56,57,97,200,0,200,0,247,0,0,0,0,0,0,0,51,0,0,102,0,0,153,0,0,204,0,0,255,0,43 ,0,0,43,51,0,43,102,0,43,153,0,43,204,0,43,255,0,85,0,0,85,51,0,..]}]

这个 json 已经在 web 服务端被序列化了。我想检索的是我的 android 应用程序中图像的字节数组,但我需要首先在我的 android.json 中反序列化 json 字符串。我可以得到 json 字符串,但是我该如何反序列化呢?

【问题讨论】:

标签: android json serialization


【解决方案1】:

您可以使用 JSONArray 或 JSONObject 类从 String 反序列化 JSON 对象,如下所示:

JSONArray jsonArray = new JSONArray(jsonString);

但是如果你处理大数据对象我建议你使用流反序列化库,例如Jackson Streaming API

【讨论】:

  • 是的,我之前尝试过使用 JSONObject,但我无法检索所有数据。如果我使用杰克逊,我不需要先序列化它吗?我不能直接反序列化它吗?
  • 什么样的数据不能用 JSONObject 检索? Jackson 使用以 JSON 字符串序列化的数据。但是您必须编写自己的代码来处理 JSON 令牌到您想要的对象。
  • 我想得到像 [71,73,70,56,57,97,....,0,59] 这样的整个图像数据,但我只得到一定的长度 cos 时我尝试将其转换为字节数组,我得到 [B@1a7b0da4,它不完整。
猜你喜欢
  • 1970-01-01
  • 2019-01-04
  • 2011-12-21
  • 1970-01-01
  • 2012-09-16
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多