我得到一个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}
这个会产生问题:$end = date('Y.m.d 23:59:59', strtotime("+2 weeks"));
例外情况表明空白区域是未终止的对象。
答案 0 :(得分:2)
发送包含在双引号内的JSON字符串中的键和值。像这样 - "key"="string"
。
{"titleDE"="Deutschland", "id"=10, "titleEN"="Germany"}
{"titleDE"="Costa Rica", "id"=10, "titleEN"="Costa Rica"}
另请注意,键和= OR =和值之间没有空格。整数/布尔值可以没有引号。
答案 1 :(得分:1)
尝试以下JSON
:
{"titleDE"="Costa Rica", "id"=10, "titleEN"="Costa Rica"}
您的问题是String
是一个没有空格的字符链(不良做法),或者是"
和"
之间的一串字符。如果您想在"
使用转义字符String
中使用\
。
实施例:
"Deutchland"
,"Costa Rica"
,"He said \"whatever\" "
。
整数值可以没有引号,但引用它们并稍后将这些字符串强制转换为正确的数字类型是一种很好的做法。当您从10
投射JSON
时,一些自动解析器会将其投射到int
,而某些会转换为long
。出于这个原因,最好自己投射。
答案 2 :(得分:1)
工作:
使用:
{ “titleDE”:“哥斯达黎加”, “id”:10, “titleEN”:“哥斯达黎加” }
空间可以存在。没有任何问题。只需使用:而不是=
答案 3 :(得分:1)
尝试以下JSON:
{titleDE:" Costa Rica",id:10,titleEN:"哥斯达黎加"}
您可以将任何json放入http://jsonviewer.stack.hu/并验证它。
答案 4 :(得分:1)
\ u200B“让说\ u200B这是在此处添加字符串” --->此Unicode(\ u200B a)将被忽略,在说和此