ios - HTML标记会使JSON文件无效吗?

标签 ios objective-c json afnetworking nsjsonserialization

嘿,我这里有点问题。
我可以使用带有此代码的AFHTTPRequestOperation加载JSON文件

   AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSError *error = nil;
   NSDictionary *JSONdata = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:&error];
        self.data = JSONdata;
    [self.tableView reloadData];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];

但是当我从someurl.com/json.html加载此JSON时,JSONdata变为null
这是JSON
{
"status": 200,
"results": [
    {
        "author": {
            "username": "user1",
            "full_name": "User 1"
        }
    }
]
}
<!-- This document saved from someurl.com/json.html -->

我试图下载该文件并从loaclhost访问它,但仍然为null。然后手动删除该html标签<!-- This document saved from someurl.com/json.html -->,然后可以加载JSON。

我的结论是,使JSON无效的html标签。
我该怎么做才能从JSON文件中删除该标签?还是我必须向NSJSONSerialization添加一些代码?

最佳答案

JSON字符串必须完全独立。它不能包含JSON数据以外的任何内容。认为它与Javascript变量赋值的右侧几乎相同:

var x = {"status":200};
        ^^^^^^^^^^^^^^---raw json text

如果您在jsont数据后的之前或之前有任何内容,则基本上是在创建javascript语法错误
var x = foo{"status":200}bar;
        ^^^---           ^^^---

如果您遇到这种情况,则上面的bar将是HTML注释。它是完全有效的JSON,还是完全无效。中间没有。

关于ios - HTML标记会使JSON文件无效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16467447/

相关文章:

ios - 将不兼容的类型分配给委托(delegate)

ios - 是否可以更改 UILabel 中部分文本的背景颜色?如何?

android - 在android中实现两个微调器之间的关系

json - JSON混合模式数据怎么写?

json - 如何在 Golang 中将 JSON 解析为具有可变类型的映射

iOS-如何使表格 View 中的每个单元格变大?

ios - 如何像Instagram那样在矩形中创建透明圆圈?

iphone - @synthesize 到底是做什么的?

ios - 使用自定义声音解析推送通知会播放默认声音

ios - 重用单元格后 UISwitch 更改状态