【问题标题】:Json and Java. From String to JSONObject: issuesJson 和 Java。从 String 到 JSONObject:问题
【发布时间】:2013-02-25 13:56:54
【问题描述】:

我正在使用库org.json

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

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

此字符串来自Hashtable<String, Object>

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

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

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

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

value = value.replace("\\", "\\\\");
value = value.replace("\"", "\\\"");
value = value.replace("\r", "\\r");
value = value.replace("\n", "\\n");

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

JSONObject json = new JSONObject(val);

【问题讨论】:

    标签: java json


    【解决方案1】:

    要从地图创建 JSON,请使用:

    new JSONObject(myMap);
    

    另一个相关问题:

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

    将按照它所说的那样列出所有需要的值:

    在所有正确的地方产生一个带有反斜杠序列的双引号字符串

    【讨论】:

    • 我得到以下异常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\r\nfgfgfd}),但 JSONObject 构造在第一个 `\` 处失败。
    • 你试过 JSONObject(myMap) 了吗?
    猜你喜欢
    • 2011-04-20
    • 1970-01-01
    • 2021-02-02
    • 2019-02-03
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    相关资源
    最近更新 更多