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

时间:2010-03-31 14:00:42

标签: java android json

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

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

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

干杯

4 个答案:

答案 0 :(得分:5)

我建议选择Gson。它对泛型和完整的Javabeans提供了出色的支持,并且真正简化了转换任务。在this answer中,您可以找到将Map<String, String>转换为JSON的示例,反之亦然,在this answer另一个示例中,将JSON字符串转换为完整的Javabean(从Javabean转换为JSON非常简单)与gson.toJson(bean)

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

答案 1 :(得分:3)

为什么不使用Bundle作为Map?它可以轻松放入Intent,基本上是一种美化的类型安全HashMap

如果您仍然需要使用JSON,我建议Jackson。转换到Java对象(包括Maps

,简单快捷(比GSON更快)

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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