关闭

解析本地JOSN为Null

标签: JOSN解析JSON解析为空
305人阅读 评论(0) 收藏 举报
分类:
前言
     

      最近准备自己封装一个图文混排的控件时,解析本地的json数据为空,后面找到原因了,原来是自己不小心,手抖了一下,在json文件中多加了一个字符,导致json的格式不正确,所以解析不出来。


一、错误的josn文件

[ { 
    "type" : "img",
    "width" : 300,
    "height" : 160,
    "name" : "coretext-image-1.jpg"
  },
  { "color" : "blue",
    "content" : "更进一步地,实际工作中,我们更希望通过一个排版文件,来设置需要排版的文字的 ",
    "size" : 16,
    "type" : "txt"
  },
  { "color" : "red",
    "content" : "内容、颜色、字体",
    "size" : 22,
    "type" : "txt"
  },
  { "color" : "black",
    "content" : "大小等信息。\n",~
    "size" : 16,
    "type" : "txt"
  },
  { "color" : "default",
    "content" : "我在开发猿题库应用时,自己定义了一个基于UBB的排版模版。但是实现该排版文件的解析器要花费大量的篇幅,考虑到这并不是本章的重点,所以我们以一个较简单的排版文件来讲解其思想。",
    "type" : "txt"
  },
  { 
    "type" : "img",
    "width" : 50,
    "height" : 32,
    "name" : "coretext-image-2.jpg"
  },
  { "color" : "default",
    "content" : "这在这里尝试放一个参考链接:",
    "type" : "txt"
  },
  { "color" : "blue",
    "content" : "链接文字",
    "url" : "http://blog.devtang.com",
    "type" : "link"
  },
  { "color" : "default",
    "content" : "大家可以尝试点击一下",
    "type" : "txt"
  }
]

凭自己的肉眼很难发现哪里的格式有问题,明智的做法是把这个的josn字符串用在线解析工具校验一下,很快就能找到问题的所在。



原来是第22行处,多加了个“~”符号,导致json格式不正确,删掉即可,然后就可以解析成功了。


解析的代码如下:

NSString *path = [[NSBundle mainBundle] pathForResource:@"content" ofType:@"json"];
    NSLog(@"path:%@",path);
    
    NSData *data = [NSData dataWithContentsOfFile:path];
    NSMutableAttributedString *result = [[NSMutableAttributedString alloc] init];
    
    if (data)
    {
        NSArray *array = [NSJSONSerialization JSONObjectWithData:data
                                                         options:NSJSONReadingAllowFragments
                                                           error:nil];
    }


0
0

  相关文章推荐
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:231583次
    • 积分:5288
    • 等级:
    • 排名:第5129名
    • 原创:302篇
    • 转载:10篇
    • 译文:0篇
    • 评论:82条
    最新评论