我正在写一个Android应用程序。我想在意图/活动中传递一些数据,我觉得在这一点上,往返JSON的转换可能是更优化的方式。我能够使用JSONObject支持成功地将java hashmap转换为json字符串。
但是我需要将此JSON字符串转换回java对象或hashmap。什么是最好的方法。
是否真的可以改变值得做的事情;如果我有简单的5场对象?在意图之间传输数据的其他方法是什么。
干杯
答案 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
)
答案 2 :(得分:2)
您可以使用Serializable
传递Intent
s,不需要JSON。
答案 3 :(得分:1)
如果你有数字数据,JSON是一个特别糟糕的选择......它会破坏任何不能表示为double的东西(甚至是一些双重值)。除非你必须与JavaScript通信,否则你应该避免使用JSON。