【问题标题】:Error Parsing JSON,but code seems Ok解析 JSON 时出错,但代码似乎没问题
【发布时间】:2012-05-11 20:19:21
【问题描述】:

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

由于网络请求,我有以下 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 但它无法解码。

【问题讨论】:

    标签: java android json parsing exception


    【解决方案1】:

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

    {"GetCommunicationsResult":"
    

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

    {\"Rows\":
    

    应该是这样的;

    {"Rows":
    

    因此,导致该问题的服务器出现了问题。也许你是这样写的:

    jsonObject.put("GetCommunicationsResult", someJsonObject.toString() );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 2018-06-23
      • 1970-01-01
      相关资源
      最近更新 更多