【发布时间】:2012-08-14 14:30:37
【问题描述】:
我需要将Vector<Vector<Float>> 转换为JSONArray。除了遍历向量并创建JSONArray,还有更简单的方法吗?
有人告诉我试试 gson。
【问题讨论】:
-
你为什么要尝试序列化和反序列化以相同的方法?您的
json字符串已经将您的矢量数据保存为 JSON。通过尝试获取 JSONArray,您正在尝试将其恢复为 Java 对象(但使用不同的 JSON 库)。为什么?为什么不直接使用data?你到底想完成什么? -
我的目标是将 Vector 转换为 JSONObject。我四处搜寻,似乎 gson 可以提供帮助。你能建议一种方法吗?
-
Gson 用于将 Java 对象序列化为 JSON 格式的字符串。然而 JSONObject 是一个 Java 对象,当您想要获取 JSON 格式的字符串并将其 back 转换为 Java 对象时使用它。它属于一个完全不同的库。当我问你实际上想要完成什么时,我的意思是更高的层次,因为你目前的目标似乎有缺陷。使用 JSON 作为无意义的中介,从一种 Java 对象类型转到另一种是没有意义的。你有需要 JSONObject 或其他东西的代码吗?您是否尝试通过套接字发送 JSON?你的目标是什么?
-
是的。我正在尝试将 Vector 存储在 Android 的 SharedPreferences 中。在这个线程stackoverflow.com/questions/3876680/… 中有一个帖子,它采用 JSON 对象作为参数来执行此操作。我已经在整个代码中使用了向量,因此将所有内容重写为 JSONArray 是不切实际的。这就是我尝试将 Vector 转换为 JSONArray 的原因。
-
有一个方法
saveJSONObject可以将JSONObject转换为字符串。因此,除非我弄错了,否则您可以跳过无用的 JSON 部分,只需按照建议保存字符串。