Json 和 Java。从 String 到 JSONObject:问题

Json and Java. From String to JSONObject: issues

我正在使用库 org.json.

我有一个这样的字符串(引号不能出现在 field_n 中)

1
{field1=value1, field2=value2}  (say it `val`)

这个字符串是从 Hashtable<String, Object>.

获得的

我从该字符串创建一个 JSONObject,获得:

1
{"field1":"value1","field2":"value2"}

当值中出现 value_n 引号(或换行符和回车符)时,就会出现问题。

我尝试过以这种方式转义字符串:

1
2
3
4
5
6
7
8
value = value.replace("\","\\\\\");
value = value.replace("
"","\\\"");
value = value.replace("\
"
,"\\\
"
);
value = value.replace("\
"
,"\\\
"
);

但是当我尝试使用以下方法创建 JSONObject 时,我总是获得 org.json.JSONException: Expected a ',' or '}' at ... [character ... line 1]

1
JSONObject json = new JSONObject(val);

为了从地图创建 JSON,使用:

1
new JSONObject(myMap);

另一个相关问题:

1
quotedStr = JSONObject.quote(val.trim());

将 qoute 所有需要的值,如它所说:

Produce a string in double quotes with backslash sequences in all the right places