当前位置: 首页 > 面试题库 >

初始化JSONObject时出现问题

颜永怡
2023-03-14
问题内容

我正在尝试使用从Web服务接收的以下字符串初始化JSONObject:

"{
    "campaignid": "8",
    "campaignname": "Pilotarienak 2011",
    "campaignlink": "http:\\/\\/www.xxx.com\\/fr\\/cote-basque\\/agenda\\/2011-05-20\\/FMAAQU064FS016DV-pilotarienak-d-anglet?fromapp",
    "splash": "http:\\/\\/www.xxx.com\\/ads\\/customers\\/pilotarienak\\/320x480.jpg",
    "banner": "http:\\/\\/www.xxx.com\\/ads\\/customers\\/pilotarienak\\/320x160.jpg"
}"

它似乎是有效的json(它在jsonlint.com中进行了验证),但是使用它初始化JSONObject时,我得到了:

org.json.JSONException: Value  of type java.lang.String cannot be converted to JSONObject

有人可以帮忙吗?

谢谢


问题答案:

似乎您正在尝试从带有额外引号的String实例化它。您需要删除包装引号(我不使用您的字符串,而是给出一个示例使其更清楚):

还行吧:

String jStr= "{\"param1\":\"hello\"}";
JSONObject jObj = new JSONObject(jStr);

这不是:

String jStr= "\"{\"param1\":\"hello\"}\"";
//  note this ^^             and this ^^ 
JSONObject jObj = new JSONObject(jStr);


 类似资料:
  • 总之,我在Jaspersoft Studio中编辑我的Jasper报告时遇到了问题,显示了以下异常。 为了导致错误,我所要做的就是尝试编辑任何文本字段或静态文本。下面是我的报告和项目fonts.jar文件中的fonts.xml。我尝试使用的字体是Roboto,包含在JasperSoft的首选项部分,我必须包含al ttf。 这发生在项目的所有报告中,这里是一个示例。 项目的fonts.jar

  • 我安装了Oracle Sql developer,但没有得到启动页。遇到JavaFx错误。 我该如何解决这个问题呢?

  • 我正在尝试在我的手机上部署我新创建的Ionic 3应用程序(我使用的是64位Windows 10),但在运行后抛出错误: 我已经安装了Android Studio。我添加了一个系统变量_JAVA_OPTIONS,其值为-Xmx512M。我还添加了值为-Xmx2048M的系统变量GRADLE_OPTS 否则我有: 为什么还会出现这个错误?

  • 我们重新启动集群上的dastanodes 我们在ambari集群中有15台数据节点机器,而每个数据节点机器都有128G RAM 版本- ( HDP - 2.6.4和安巴里版本2.6.1) 但是,由于以下错误,datanode无法启动 这很奇怪dtnode_heapsize因为 8G ( 数据节点最大 Java 堆大小 = 8G ),从日志中我们也可以看到 所以我们不明白这是怎么回事 dose-与D

  • 我正试着通过这样做来初始化amplify 在Android项目中。不知何故,每次安装失败时,都会出现以下stacktrace: ⠹ 正在云中初始化项目。。。创建CloudFormation堆栈时出错✖ 根堆栈创建失败init失败{InvalidClientTokenId:请求中包含的安全令牌无效。在请求时出现extractError(/usr/local/lib/node_modules/@aws

  • 初始化检出 大多数时候,你会使用checkout从版本库取出一个新拷贝开始使用Subversion,这样会在本机创建一个项目的“本地拷贝”,这个拷贝包括了命令行指定版本库中的HEAD(最新的)版本: $ svn checkout http://svn.collab.net/repos/svn/trunk A trunk/Makefile.in A trunk/ac-helpers A