将字符串转换为json对象时出现错误

h7appiyu  于 2022-12-01  发布在  其他
关注(0)|答案(3)|浏览(332)

我有一个字符串需要转换为JSONObject,我添加了依赖项,但我得到了错误,我无法弄清楚。我有以下依赖项:
第一个
我得到一个异常:

org.json.JSONException: Expected a ':' after a key at line 5
dxxyhpgq

dxxyhpgq1#

您提供的JSON无效,因为分隔符冒号:应用作键和值之间的分隔符(* 不是等号 *)。
引用标准JavaScript对象表示法(JSON)数据交换格式:

4.对象

对象结构用一对大括号表示
括住零或多个名称/值组(或成员)。名称是
字符串。单个冒号出现在每个名称后面,分隔名称
。一个逗号将值与后面的
一个对象中的名称应该是唯一的。
可以在使用String.replace()解析JSON之前对其进行预处理

String s ="{name=Alex, sex=male}";
    
JSONObject obj = new JSONObject(s.replace('=', ':'));
    
System.out.println(obj.get("name"));
  • 输出:*
Alex

另外,**请注意****Org.json *(以及其他一些库,如Gson)将负责修复丢失的双引号"

zzoitvuj

zzoitvuj2#

您分配给变量s的字符串不是有效的JSON。属性名称和属性应该用:而不是=分隔,并且字符串和属性名称应该用双引号括起来。
因此,示例中的字符串应如下所示(使用\对字符串引号中的引号字符进行转义):

String s = "{\"name\":\"Alex\",\"sex\":\"male\"}";
cdmah0mi

cdmah0mi3#

您应该使用:而不是=
字符串s =“""{“姓名”:“Alex”,“性别”:“男性”}""";(自Java 13预览功能起)

相关问题