我有一个字符串需要转换为JSONObject,我添加了依赖项,但我得到了错误,我无法弄清楚。我有以下依赖项:第一个我得到一个异常:
JSONObject
org.json.JSONException: Expected a ':' after a key at line 5
dxxyhpgq1#
您提供的JSON无效,因为分隔符冒号:应用作键和值之间的分隔符(* 不是等号 *)。引用标准JavaScript对象表示法(JSON)数据交换格式:
:
4.对象
对象结构用一对大括号表示括住零或多个名称/值组(或成员)。名称是字符串。单个冒号出现在每个名称后面,分隔名称。一个逗号将值与后面的一个对象中的名称应该是唯一的。可以在使用String.replace()解析JSON之前对其进行预处理
String.replace()
String s ="{name=Alex, sex=male}"; JSONObject obj = new JSONObject(s.replace('=', ':')); System.out.println(obj.get("name"));
Alex
另外,**请注意****Org.json *(以及其他一些库,如Gson)将负责修复丢失的双引号"。
"
zzoitvuj2#
您分配给变量s的字符串不是有效的JSON。属性名称和属性应该用:而不是=分隔,并且字符串和属性名称应该用双引号括起来。因此,示例中的字符串应如下所示(使用\对字符串引号中的引号字符进行转义):
s
=
\
String s = "{\"name\":\"Alex\",\"sex\":\"male\"}";
cdmah0mi3#
您应该使用:而不是=字符串s =“""{“姓名”:“Alex”,“性别”:“男性”}""";(自Java 13预览功能起)
3条答案
按热度按时间dxxyhpgq1#
您提供的JSON无效,因为分隔符冒号
:
应用作键和值之间的分隔符(* 不是等号 *)。引用标准JavaScript对象表示法(JSON)数据交换格式:
4.对象
对象结构用一对大括号表示
括住零或多个名称/值组(或成员)。名称是
字符串。单个冒号出现在每个名称后面,分隔名称
。一个逗号将值与后面的
一个对象中的名称应该是唯一的。
可以在使用
String.replace()
解析JSON之前对其进行预处理另外,**请注意****Org.json *(以及其他一些库,如Gson)将负责修复丢失的双引号
"
。zzoitvuj2#
您分配给变量
s
的字符串不是有效的JSON。属性名称和属性应该用:
而不是=
分隔,并且字符串和属性名称应该用双引号括起来。因此,示例中的字符串应如下所示(使用
\
对字符串引号中的引号字符进行转义):cdmah0mi3#
您应该使用:而不是=
字符串s =“""{“姓名”:“Alex”,“性别”:“男性”}""";(自Java 13预览功能起)