将字符串转换为JSON对象的简便方法?

时间:2013-08-12 16:46:54

标签: java json jackson

是否有更简单的方法将json字符串文字转换为json对象而不是手动编码“\”。

示例数据但是我的数据远大于此。

{"phonetype":"N95","cat":"WP"}

//Easier way? Equivalent of JSON.Stringify({"phonetype":"N95","cat":"WP"})?
JSONObject jsonObj = new JSONObject("{\"phonetype\":\"N95\",\"cat\":\"WP\"}"); 

3 个答案:

答案 0 :(得分:1)

你的最终目标是什么?为什么字符串需要直接在Java文件中?就此而言,为什么报价逃避问题呢?对我来说,似乎你有一个不必要的约束(例如“这个字符串需要内联”或“这需要一个字符串”),如果你删除它将更容易使用。

  1. 在Java之外存储复杂的JSON

    对我来说,这几乎肯定是你最好的选择。您将数据描述为“远大于[{"phonetype":"N95","cat":"WP"}]”,这意味着它是数据,而不是代码,您可以更好地将它们分开。在需要的时候使用你想要的任何工具加载文件,你就是金色的。

  2. 将您的设置存储为JSON以外的其他内容

    JSON很适合很多东西,但是如果你需要内联的JSON并且不能使用外部文件,那就告诉我你的Java和你的JSON之间有一些非常紧密的耦合,这是没有意义的。你最好存储类型安全的常量,或者将这些数据保存在“真正的”Java中,而不是在你解析的字符串中。

  3. 不要担心转义

    我不认为这适用于您的情况,但如果您有少量的JSON,您确实想要内联和JSON,那么只需将其删除并转义一些引号即可完成。如果这个选项看起来有问题,因为a)数据经常变化或者b)数据庞大而且复杂,可以直接使用,这是一个非常明显的标志,你实际上想要上面的选项1.

答案 1 :(得分:0)

有多个json解析器可用于将json编组到对象,反之亦然。这些解析器中很少有

答案 2 :(得分:-1)

Mabye这会有帮助吗?

JSONObject jsonObj = new JSONObject("{'phonetype':'N95','cat':'WP'}");