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

  • 我得到以下异常 org.json.JSONException: A JSONObject text must begin with ‘{‘ at 1 [character 2 line 1]。
  • @baraky – 这行不通。它只会用引号括起整个 JSON 字符串,而不是单个字段和值。
  • 看看它是否有帮助:stackoverflow.com/questions/4773663/…
  • @baraky:没什么。引发异常 org.json.JSONException: Expected a ‘,’ or ‘}’ at … [character … line 1]。字符串被转义 ({field1=dfds \”fdsfs\” fdfsd, field2=dsad\
    \
    fgfgfd}),但 JSONObject 构造在第一个 `\\\\\\\\` 处失败。
  • 也许您可以在 JSON 中的每个对象上使用 JSONObject.quote()(您从地图中获得的内容),然后添加 “{” 和
  • 您可以查看stackoverflow.com/questions/512692/…
  • 你试过 JSONObject(myMap) 吗?


来源:https://www.codenong.com/15068645/

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?