首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NSDebugDescription = "JSON文本没有以数组或对象开头,也没有设置允许片段的选项。“;

NSDebugDescription = "JSON文本没有以数组或对象开头,也没有设置允许片段的选项。“;
EN

Stack Overflow用户
提问于 2013-03-17 08:37:29
回答 7查看 5.2K关注 0票数 24

我正在使用AFJSONRequestOperation请求服务器并解析返回的JSON响应,但是在解析时,我得到了这个错误:

NSDebugDescription = "JSON text did not start with array or object and option to allow fragments not set.";

我检查了API,它返回了JSON数据:

header('Content-type: text/json');
$arr[] = array("Message" => "update succeeded");
echo '{"Result":'.json_encode($arr).'}';

你知道怎么解决这个问题吗?

编辑

我尝试从浏览器调用API并将请求包含在url中,因此我得到了一个有效的JSON响应:

{"Result":[{"Message":"update succeeded"}]}
EN

回答 7

Stack Overflow用户

发布于 2015-05-16 18:56:25

首先,json_encode整个对象,而不是将其分成几个部分。

其次,除非$arr包含多个元素(从上面的示例中看不出来),否则应该将其初始化为:

$arr = array("Message" => "update succeeded");

我仍然不确定这里还会有什么问题。您应该回显您的应用程序正在接收的内容,这应该表明问题所在。

票数 1
EN

Stack Overflow用户

发布于 2015-12-29 21:35:42

请使用可接受的内容类型。在您的text服务中,它应该只是纯文本。

以下是我的快速代码和修复:

    let manager = AFHTTPRequestOperationManager()

    manager.requestSerializer=AFJSONRequestSerializer()
    manager.responseSerializer = AFHTTPResponseSerializer();

    manager.GET(

        baseURL + (webServiceType as String) + secureParam,
        parameters:[:],

        success:
        { (operation: AFHTTPRequestOperation!,
            responseObject: AnyObject!) in
            completion(obj: responseObject)
        },
        failure:
        { (operation: AFHTTPRequestOperation!,
            error: NSError!) in
            completion(obj: nil)
    })
票数 1
EN

Stack Overflow用户

发布于 2016-02-18 21:38:35

检查是否在API的基本url前添加了/api/,如下所示

yourBasrUrl /api/api名称

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15456396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档