Java 解析JSON时出错,但代码似乎正常
首先,谢谢你阅读我的问题 由于一个web请求,我得到了以下JsonJava 解析JSON时出错,但代码似乎正常,java,android,json,parsing,exception,Java,Android,Json,Parsing,Exception,首先,谢谢你阅读我的问题 由于一个web请求,我得到了以下Json {"GetCommunicationsResult":" {\"Rows\": [{\"Data\":\"2011-12-16T00:00:00\",\"Teacher\":\"Surname Name\", \"Communication\":\"bla bla bla and bla bla bla\"}, {\"Data\":\"2011-10-18T00:00:00\",\
{"GetCommunicationsResult":"
{\"Rows\":
[{\"Data\":\"2011-12-16T00:00:00\",\"Teacher\":\"Surname Name\",
\"Communication\":\"bla bla bla and bla bla bla\"},
{\"Data\":\"2011-10-18T00:00:00\",\"Teacher\":\"Surname Name\",
\"Communication\":\"bla bla bla and bla bla bla\"}]
}"
}
我需要解码才能使用我的程序
JSONObject jsonData = readUrl("http://myWebSite/folder/site.svc/Communications/000884");
(readurl是一个以字符串形式返回json的方法)JSONObject BaseObject = new JSONObject(jsonData);
(奇怪的是,JSONObject构造函数没有提供任何Inputstream或Reader
参数,但仅限字符串或类似项)JSONObject DerivatedObject=BaseObject.getJSONObject("GetCommunicationsResult");
Value {"Rows":[{"Data":"2011-12-16T00:00:00","Teacher":"Surname Name","Communication":"bla bla bla and bla bla bla"},{"Data":"2011-10-18T00:00:00","Teacher":"Surname Name","Communication":"bla bla bla and bla bla bla"}]}
at GetCommunicationsResult of type java.lang.String cannot be converted to JSONObject
对如何解决这个问题有什么建议吗?我不知道为什么我的代码实际上找到了JSON,但它无法对其进行解码。您的引用有误。请参阅此行上的最后一个开放报价:
{"GetCommunicationsResult":"
这会导致值是字符串而不是JSONObject。您可以判断它是一个字符串,因为JSON中的所有其他“”都被转义:
{\"Rows\":
应该是,
{"Rows":
因此,服务器上出现了导致该问题的错误。可能您正在放置以下内容:
jsonObject.put("GetCommunicationsResult", someJsonObject.toString() );
您的报价有误。请参阅此行上最后一个打开的报价:
{"GetCommunicationsResult":"
这导致值是字符串而不是JSONObject。您可以判断它是字符串,因为JSON中的所有其他“”都被转义:
{\"Rows\":
应该是,
{"Rows":
因此,服务器上出现了导致该问题的错误。也许你在说这样的话:
jsonObject.put("GetCommunicationsResult", someJsonObject.toString() );