前言

最近准备自己封装一个图文混排的控件时,解析本地的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:dataoptions:NSJSONReadingAllowFragmentserror:nil];}

解析本地JOSN为Null相关推荐

  1. 条形码、二维码的生成与扫描、解析本地二维码

    Github项目解析(十)–>几行代码快速集成二维码扫描库 - CSDN博客 http://blog.csdn.net/qq_23547831/article/details/52037710 ...

  2. TMG学习(四),允许内部网络解析本地主机的Netbiso名称

    Web代理客户端,在IE代理服务器中填写了TMG本地主机的计算机名,而默认情况下TMG中没有开放内部网络可以解析本地主机的计算机名,因此IE代理客户端无法进行上网,如下图所 为了解决这个问题,我们只需 ...

  3. c 本地html解析,使用selenium解析本地HTML文件方法

    import requests import time """ 经验总结: 1.使用selenium解析本地HTML文件方法, browser.get("fil ...

  4. flutter解析本地json数组

    解析如下代码:如果不知道如何添加本地json的,可以看我另外一篇文章flutter 解析本地json rootBundle.loadString("images/list.json" ...

  5. Zookeeper源码解析 -- 本地事务日志持久化之FileTxnLog

    序言 在各个分布式组件中,持久化数据到本地的思想并不少见,为的是能保存内存中的数据,以及重启后能够重载上次内存状态的值.那么如何行之有效的进行,内存数据持久化到磁盘,怎么样的落盘策略合适,怎么设计持久 ...

  6. java解析本地.geoJson地理信息,根据经纬度找到所在区域(全程Chatgpt3.5交互写代码,附gpt交流记录)

    1:起因 对于一些因为安全等级而不连通外网的服务器,客户提出了根据本地.geoJson文件获取区域地理信息,根据用户提供的经纬度x,y坐标,找到这个点所在的区域 2:思路 根据.geoJson文件中连 ...

  7. python读取本地文件-python解析本地HTML文件

    Python使用爬虫技术时,每运行一次,本地都会访问一次主机.为避免完成程序前调试时多次访问主机增加主机负荷,我们可以在编写程序前将网页源代码存在本地,调试时访问本地文件即可.现在我来分享一下爬取资料 ...

  8. Git之深入解析本地仓库的基本操作·仓库的获取更新和提交历史的查看撤销以及标签别名的使用

    一.获取 Git 仓库 通常有两种获取 Git 项目仓库的方式: 将尚未进行版本控制的本地目录转换为 Git 仓库: 从其它服务器克隆一个已存在的 Git 仓库. 两种方式都会在本地机器上得到一个工作 ...

  9. 网站域名解析端口_环境测试必备,无需注册域名,免费动态IP解析一键解析本地网站...

    localtunnel是基于Nodejs 开发的一个工具,开发者同时提供了Go语言版本. 这个工具可以提供给你一个随机生成的二级域名,动态域名解析到你执行这个命令的服务器上,可以将域名解析到指定端口上 ...

最新文章

  1. luogu_2107【题解】
  2. 《不只是美:信息图表设计原理与经典案例》—— 2.5 功能限制形式
  3. QT的QSGGeometryNode类的使用
  4. CSS3的background-size:设置背景图片大小
  5. Spring中使用Spark连接的DataSource
  6. 云服务器的优点和缺点_为什么要使用云计算? 的优点和缺点
  7. api报错 javaee maven_maven test 换javaee6 无法加载spring的配置文件 ?报错-问答-阿里云开发者社区-阿里云...
  8. C语言预处理命令分类和工作原理
  9. centos7 安装redmin3.3.0+postgresql数据库
  10. dedecms漏洞getshell EXP最新可用
  11. mysql挂科了咋办_大学第一学期挂科怎么办?
  12. android同一个activity中传递参数,Android中Activity之间跳转和参数传递的实例
  13. win10桌面简洁化(自定义鼠标右键菜单)
  14. 期待了1年多了《黑客攻防实战编程》终于面世了!
  15. h5 Table表格
  16. 431. 将 N 叉树编码为二叉树(树+二叉树 相互转化)
  17. 实验五|Python 企业获利能力分析
  18. android 前摄屏幕补光,移动终端的前置摄像头的补光方法及装置与流程
  19. Microsoft visual studio关闭安全检查的几种方法(2015/2017)
  20. Android中jsoup的混淆规则

热门文章

  1. 盘点私域流量的那4种商业模式!
  2. 王岚老师计算机,学党史丨计算机与信息工程学院、软件学院组织退休教师到校史馆参观学习...
  3. 死磕算法第二弹——栈、队列、链表(2)
  4. 华为鸿蒙系统荣耀X10,华为也分三六九等,3款机型才是正确选择,全都能升级鸿蒙系统...
  5. WebShell是什么?如何抵御WebShell?
  6. 7nm芯片在路上,AMD又倒逼英特尔?
  7. 数据结构【链式前向星】
  8. 3.通过Opencv读取和保存图片
  9. 房地产专家眼中的2015年下半年房价走势
  10. nginx做小程序外链跳转_小程序如何做外部链接跳转