将JSON字符串转换为Java对象或HashMap

我正在写一个Android应用程序。 我想在意图/活动中传递一些数据,我觉得在这一点上,往返JSON的转换可能是一种更优化的方式。 我能够使用JSONObject支持成功地将java hashmap转换为json字符串。

但是我需要将此JSON字符串转换回java对象或hashmap。 什么是最好的方法。

是否可以改变是值得做的事情; 如果我有简单的5场对象? 在意图之间传输数据的其他方法有哪些。

干杯

我建议选择Gson 。 它对generics和完整的Javabeans提供了出色的支持,并且真正简化了转换任务。 在这个答案中,你可以找到一个将Map转换为JSON的例子,反之亦然。在这个答案中,另一个将JSON字符串转换为完整的Javabean的例子(从Javabean到JSON,使用gson.toJson(bean)非常简单) gson.toJson(bean)

传输数据的其他方法是XML和序列化,两者都比JSON有更多的开销。

为什么不使用Bundle作为Map ? 它可以很容易地置于Intent ,基本上是一个美化的类型安全的HashMap

如果你仍然需要使用JSON我会推荐jackson 。 与Java对象(包括Maps )之间的转换简单快捷(比GSON更快)

您可以使用Intent s传递Serializable ,不需要JSON。

如果你有数字数据,JSON是一个特别糟糕的选择…它会破坏任何不能表示为double(甚至是一些双精度值)的东西。 除了你必须与JavaScript通信的地方,你应该避免使用JSON。