【问题标题】:objective-c: NSJSONSerialization fail when data is from stringObjective-c:当数据来自字符串时,NSJSONSerialization 失败
【发布时间】:2018-05-30 11:49:49
【问题描述】:

在我的解析器中,我有一个方法可以返回 API 的结果对象。内容数据为字符串时失败:

 ...
 resul = [NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error: &error];

        return resul;

结果为零。

但数据不为零:如果执行:

NSString *strResul = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] 

strResul 是“我的字符串”。

为什么 NSJSONSerialization 只在这种情况下失败?

【问题讨论】:

  • “我的字符串”不是有效的 json。您可以在这里测试您的 json 是否有效……jsonlint.com

标签: objective-c nsjsonserialization


【解决方案1】:

如果预期结果可以是NSString,则必须通过NSJSONReadingAllowFragments

【讨论】:

    【解决方案2】:

    字符串应采用有效的 JSON 格式才能正常工作 因为NSJSONSerialization 将导致NSArrayNSDictionary

    【讨论】:

    【解决方案3】:

    您的字符串格式不正确。以下字符串是正确的

    {
        "title": "Team member - sunnyxx",
        "content": "Working at Baidu, Zhidao iOS team, weibo: ",         
        "username": "sunnyxx",
        "time": "2015.04.11",
        "imageName": "sunnyxx"
    }
    

    或者你初始化一个字典,转成jsonString,然后用api解析。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      相关资源
      最近更新 更多