ios JSON解析常见错误

ios JSON解析常见错误,第1张

iOS现有Json解析框架+ ( id)JSONObjectWithData:options: error:

不支持对非标准格式Json的处大雀链理(特殊字符包括“\“ 、 ”\n“、 ”\r“等)

如:

处理办法:1、将带有转义字符的数据转成字典(标准的JSON格式)再进行解析

2、用“\“进行转义

方案解决:

1。「 从根源上与API协调,尽量禁止返回值为NSNULL、null、nil这样的值。

2。「 客户端做处理,处理值为NSNULL、null、nil的情况。或者对消息进行转发 避免由于返回值有误导致程序崩溃的情况

问题:

前后端编码不一致导致解析后的值乱码、解析不了json数据、报错等。

解决方案:1、与后台规定好统一编码;2、客户端进行编码转换;

问题:

JSON数据中的浮点型值,用系统方法NSJSONSerialization

解析为字符串后,出现精度误差

解决方案:

1。「 后台以滚孙字符串形式返回

2。「 解析时数据格式化,明确转成doubleValue类型,如下:

NSString *value=[NSString stringWithFormat:@"%f",[dic[@"number"] doubleValue]]

如下数据解析

json局部数据这样的:{"content_id" : "666"}

NSString name = dic[@"content_id"] 这句会产生类型错误

虽然是"666"这样的数字岁樱字符串,但还是要当成id类型stringWithFormat一下

NSString name = [NSString stringWithFormat:@"%@",dic[@"content_id"]]

如果JSON数据的key值为非String类型用NSJSONSerialization

解析会找不到key而报错:

BOOL manage = [content objectForKey:@"manage"];

上面结果无论JSON数据中manage字段是0还是1,manage都为YES。

用BOOL接收JSON字段时,需要增加boolValue转换:

BOOL manage = [[content objectForKey:@"manage"] boolValue]

问卷表结构设计可以使用多种数据存储格式,包括Json、XML、CSV等。其中,Json是一种轻量级、易于理解和使用的数据交换格式,也逐渐被广泛应用于表单和问卷的结构设计和数据存储,因为它可以支持复杂数据结构,同时也适合前端开发人员的编程。

在Json格式的问卷表结构设计中,可以使用对象字面量来表示问题和选项,如:

```

{

"title": "这是一个问卷标题",

"questions": [

{

"type": "singleChoice",

"title": "以下哪种糖尿病风险高?",

"options": [

{"id": "A", "content": "中年肥胖人士"},

{"id": "B", "content": "妇女怀孕前患过妊娠糖尿病"},

{"id": "C", "content": "患过糖尿病"},

{"id": "D", "content": "有亲属患有糖尿病"},

]

},

{

"type": "multiChoice",

"title": "以下哪些因素可能会造成母鸡死亡?",

"options": [

{"id": "A", "content": "饲料中毒、污染"},

{"id": "B", "content": "环境不良、气候异常"},

{"id": "C", "content": "感染病毒、细菌"},

{"id": "D", "content": "伤病原因"},

]

},

// ...

]

}

```

这样的Json格式的结构既芹信可以拆斗被网络上的服务端进行解析,存储到数据库或者文件中,同时前端开发人员也可以通过JavaScript代码进行解析、生成HTML页面或者前后端交互。

但需要注意的是,Json本身并不是严格的规范或者标准,因此需要按照一定的规则进行编写和解析,以确保数据的正确和可靠旅首磨。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12250891.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存