JSON 值中的空白 space

Blank space in JSON Value

我得到一个 JSON 格式的字符串,我尝试获取值。我的方法工作正常,但如果该值中有一个空白 space,我的方法就会崩溃并且会出现异常。下面是我的代码:

private String getValue(String jsonval)
{
    try
    {
        JSONObject jsonObject = new JSONObject(jsonval);
        return jsonObject.optString("id");
    }
    catch(JSONException e)
    {
        e.printStackTrace();
    }
    return null;
}

虽然这个字符串工作正常:{titleDE=Deutschland, id=10, titleEN=Germany} 这个有问题:{titleDE=Costa Rica, id=10, titleEN=Costa Rica} 异常表明空白 space 是一个未终止的对象。

尝试以下方法JSON

{"titleDE"="Costa Rica", "id"=10, "titleEN"="Costa Rica"}

你的问题是 String 要么是一串没有空格的字符(不好的做法),要么是一串位于 "" 之间的字符。如果您想在 String 中使用 ",请使用最常见的转义字符 \.

例子: "Deutchland", "Costa Rica", "He said \"whatever\" ".

整数值可以不带引号,但最好将它们加引号,然后将这些字符串转换为正确的数字类型。当您从 JSON 转换为 10 时,一些自动解析器会将其转换为 int,而另一些则会转换为 long。为此,还是自己投吧。

发送 JSON 字符串中的键和值,并用双引号括起来。像这样 - "key"="string".

{"titleDE"="Deutschland", "id"=10, "titleEN"="Germany"}
{"titleDE"="Costa Rica", "id"=10, "titleEN"="Costa Rica"}

同时观察 key 和 == 和 value 之间没有空格 space。 Integer/boolean 值可以不带引号。

工作:

使用:

{ "titleDE": "CostaRica", "id": 10, "titleEN": "Costa Rica" }

Space 可以在那里。没有任何问题。只需使用 : 而不是 =

尝试以下 JSON :

{titleDE:"Costa Rica", id:10, titleEN:"Costa Rica"}

你可以在http://jsonviewer.stack.hu/中输入任何json并验证它。

\u200B可以加在字符串"lets say \u200B this is string added here "--->这个unicode(\u200B a)会被忽略空space加在say[=15之间=]和这个