0

首先,感谢您阅读我的问题。

由于网络请求,我有以下 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\",\"Teacher\":\"Surname Name\",
        \"Communication\":\"bla bla bla and bla bla bla\"}]
   }"
 }

我需要对其进行解码才能使用我的程序。

  1. 首先,我将 JSON 作为字符串资源

    JSONObject jsonData = readUrl("http://myWebSite/folder/site.svc/Communications/000884");
    

    (readurl 是一种将 json 作为字符串返回的方法)

  2. 然后我使用这个字符串创建一个 JSONObject

    JSONObject BaseObject = new JSONObject(jsonData);   
    

    (奇怪的是,JSONObject 构造函数不提供任何 Inputstream 或 Reader 参数,而只提供字符串或类似参数)

  3. 最后,我尝试减少我的 JSON

    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,但它无法解码它。

4

1 回答 1

4

你有一个错误的报价。请参阅此行的最后一个公开报价:

{"GetCommunicationsResult":"

这导致该值是字符串而不是 JSONObject。你可以说它是一个字符串,因为所有其他“在 JSON 中都被转义了:

{\"Rows\":

那应该是;

{"Rows":

因此,导致该问题的服务器出现问题。也许你正在放这样的东西:

jsonObject.put("GetCommunicationsResult", someJsonObject.toString() );
于 2012-05-11T20:24:03.610 回答