0

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

样本数据,但我的比这大得多。

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

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

3 回答 3

1

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

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

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

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

    JSON 对很多事情都很好,但是如果您需要 JSON 内联并且不能使用外部文件,那么这表明您的 Java 和 JSON 之间存在一些非常紧密的耦合,这是没有意义的。您最好存储类型安全的常量或以其他方式将这些数据保存在“真正的”Java 中,而不是保存在您解析的字符串中。

  3. 不用担心逃跑

    我认为这不适用于您的情况,但是如果您确实想要内联和 JSON 的少量 JSON,那么只需将其放入并转义几个引号即可。如果由于 a) 数据定期更改或 b) 数据庞大且复杂而无法在线使用,那么此选项似乎有问题,这是一个非常明显的迹象,您实际上需要上面的选项 1.。

于 2013-08-12T19:01:50.627 回答
0

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

于 2013-08-12T16:47:40.120 回答
-1

Mabye这会有所帮助吗?

JSONObject jsonObj = new JSONObject("{'phonetype':'N95','cat':'WP'}"); 
于 2013-08-12T18:39:28.277 回答