将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。