将JSON字符串转换为Java对象或HashMap
我正在写一个android应用程序。我想在意图/活动之间传递一些数据,我觉得在这一点上,从JSON到JSON的转换可能是一种更好的方式。我能够使用JSONObject支持成功地将java hashmap转换为json字符串 但是,我需要将这个JSON字符串转换回java对象或hashmap。最好的办法是什么 包裹真的是值得做的改变;如果我有简单的5场对象?在意图之间传输数据的其他方式有哪些 干杯我建议你选择。它对泛型和完整的Javabeans有极好的支持,并且真正简化了转换任务。在中,您可以找到一个将将JSON字符串转换为Java对象或HashMap,java,android,json,Java,Android,Json,我正在写一个android应用程序。我想在意图/活动之间传递一些数据,我觉得在这一点上,从JSON到JSON的转换可能是一种更好的方式。我能够使用JSONObject支持成功地将java hashmap转换为json字符串 但是,我需要将这个JSON字符串转换回java对象或hashmap。最好的办法是什么 包裹真的是值得做的改变;如果我有简单的5场对象?在意图之间传输数据的其他方式有哪些 干杯我建议你选择。它对泛型和完整的Javabeans有极好的支持,并且真正简化了转换任务。在中,您可以找到
映射
转换为JSON的示例,反之亦然;在另一个示例中,您可以找到将JSON字符串转换为完整的Javabean的示例(使用gson.toJson(bean)
,从Javabean转换为JSON非常简单)
其他传输数据的方法是XML和序列化,两者的开销都比JSON大得多。你可以通过
可序列化的s来传递Intent
s,不需要JSON。为什么不使用Bundle
作为你的映射呢?它可以很容易地放在Intent
中,基本上是一种美化的类型安全>HashMap
如果您仍然需要使用JSON,我建议您使用。转换Java对象(包括Maps
)时,JSON既简单又快速(比GSON更快)如果您有数字数据,JSON是一个特别糟糕的选择……它会破坏任何不能表示为双精度的东西(甚至一些双精度值)。除非必须与JavaScript通信,否则应避免使用JSON。这是不正确的。JSON具有泛型数字类型,但可以包含纯整数,这取决于库是否以浮点形式公开。最具体地说,大多数Java JSON库都能干净高效地处理这些。也许您有在一些库方面有过不好的经验?这根本不是真的。随机示例:json.org实现按照我所描述的方式被破坏了。您可能不希望有一个“固定”的json库,因为这样它将与JavaScript本身不兼容。