在将两个字符串的JSONObject.put操作应用于JSONObject时,如何避免'\'?

时间:2014-03-15 07:38:52

标签: java json escaping

代码如下:

JSONObject solution = new JSONObject(); 
variableName = "TEST"                   
System.err.println("1:"+value);
solution.put(variableName, value);
System.err.println("2:"+solution);

以下是输出结果:

1:{"min":10,"max":40}
2:{"TEST":"{\"min\":10,\"max\":40}"}

我怎样才能摆脱烦人的' \?#? 非常感谢你!

1 个答案:

答案 0 :(得分:0)

您在打印行中获得\的原因是因为它正在转发"中使用的value字符。这没有任何问题,它只是表示\"没有终止字符串,而是该字符串的值部分。

双引号的使用是有效的JSON,而不是单引号 - 请参阅相关的Q here

但如果你真的想,如果你这样创建value

    JSONObject value = new JSONObject("{'min':10,'max':40}");       

然后你应该从现有代码中获得所需的输出:

1:{"min":10,"max":40}
2:{"TEST":{"min":10,"max":40}}