json解包与json封包

首先,对两个名词进行简单的说明:

1.NSData

用来存储二进制的数据类型。NSData类提供了一种简单的方式,它用来设置缓冲区、将文件的内容读入缓冲区,或将缓冲区的内容写到一个文件。不变缓冲区(NSData类),也可定义可变的缓冲区(NSMutableData类)。

2.json

作为一种轻量级的数据交换格式,正在逐步取代XML,成为网络数据的通用格式。

小结:我们只需要明白NSData类型是用来存储二进制数据的,json是一种数据格式,注意是格式。

接着,先用一段文字简单描述一下json解包和json封包:

iOS5.0以后,苹果SDK推出了自带的json解决方案NSJSONSerialization,这是一个非常好用的json生成和解析工具,效率也是比其他第三方开源项目的高很多。NSJSONSerialization提供了json数据封包、Json数据解包。NSJSONSerialization提供了将json数据转换为NSDictionary或NSArray的解包方法,也提供了将NSDictionary、NSArray对象转换为json数据(可以通过调用isValidJSONObject来判断NSDictionary、NSArray对象是否可以转换为json数据)的封包方法。

然后,用一张图试着说明两件事。其一是,利用NSJSONSerialization将一个json文件解包成数组或者字典。其二是,利用NSJSONSerialization将数组或者字典封包成一个json文件。

 

最后还是上代码与效果图:

 1 - (void)viewDidLoad {
 2     [super viewDidLoad];
 3     
 4     NSLog(@"*******开始封包********");
 5     [self fengbao];
 6     NSLog(@"*******开始解包********");
 7     [self jiebao];
 8 }
 9 
10 - (void)jiebao
11 {
12     NSString *filePath = @"/Users/Hers/Desktop/UIimageView简单测试/UIimageView简单测试/jsonDate.json";
13     NSData *jsonData = [NSData dataWithContentsOfFile:filePath];
14     NSError *error;
15     NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:jsonData options: NSJSONReadingMutableContainers error:&error];
16     NSLog(@"%@",jsonDict);
17 }
18 
19 - (void)fengbao
20 {
21     NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",@"value3",@"key3", nil];
22     // isValidJSONObject判断对象是否可以构建成json对象
23     if ([NSJSONSerialization isValidJSONObject:dic]){
24         NSError *error;
25         // 创造一个json从Data, NSJSONWritingPrettyPrinted指定的JSON数据产的空白,使输出更具可读性。
26         NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&error];
27         NSLog(@"jsonData:%@",jsonData);
28         
29         NSString *jsonStr =[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
30         NSLog(@"jsonStr:%@",jsonStr);
31         
32         BOOL result = [jsonData writeToFile:@"/Users/Hers/Desktop/UIimageView简单测试/UIimageView简单测试/jsonDate.json" atomically:YES];
33         NSLog(@"result:%d",result);
34     }
35 }

输出日志:

封包操作后产生的文件:

 

【极力推荐】2018年中秋节两天的良心写作,全面讲解UITextField,总有你不知道的知识:UITextField的使用、介绍、讲解、全解、简介、说明

转载于:https://www.cnblogs.com/cchHers/p/5357583.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 易语言是一种可视化编程语言,用于开发Windows平台的应用程序。封包解包工具是指用于将数据进行打包和拆包的工具,主要用于网络编程中数据的传输和通信。 易语言中有一些第三方库和插件可以用于实现TCP封包解包的功能。这些库和插件提供了一些函数和方法,方便开发人员在易语言中进行数据的封包解包。 TCP封包是将数据按照一定的格式进行打包,以便于在网络上进行传输。常用的封包格式有固定长度封包、变长封包和自定义格式封包等。使用易语言进行TCP封包时,可以使用这些第三方库和插件中提供的函数,按照指定的封包格式将数据进行打包。 TCP解包是将封包后的数据拆分成可识别的数据。解包操作与封包相反,通过读取封包中的长度字段和标识字段等信息,将封包还原为原始数据。易语言中的TCP解包工具可以根据封包格式的规则进行解包操作,并将解包后的数据返回给开发人员使用。 使用易语言进行TCP封包解包的工具可以帮助开发人员简化数据传输的过程,提高开发效率和数据传输的安全性。通过这些工具,开发人员可以方便地进行数据的封包解包操作,从而更好地实现网络通信功能。 ### 回答2: 易语言是一种编程语言,它可以用于开发Windows系统下的应用程序。TCP封包解包工具是易语言提供的一个工具,用于处理TCP协议传输的数据包。 在网络通信中,数据的传输是以数据包的形式进行的。TCP封包解包工具可以帮助程序员处理从网络接收到的数据包,以及将要发送的数据转换为合适的格式进行传输。 封包指的是将数据转换为特定格式的过程。TCP封包解包工具可以将数据按照协议要求的格式进行封装,例如添加报文头部、计算校验和等操作,以便正确地发送给对方。 解包指的是将接收到的数据包进行解析的过程。TCP封包解包工具可以按照协议规定的格式解析数据包,并提取出其中的有效信息,以便程序能够正确地处理这些数据。 TCP封包解包工具可以帮助程序员简化网络通信的开发过程,使得开发人员能够更加专注于实现业务逻辑。它提供了一套封包解包的接口和函数库,开发者只需要调用相应的函数来完成数据的封包解包操作即可。 总之,易语言TCP封包解包工具是易语言提供的一个工具,用于处理TCP协议传输的数据包,使开发者能够更加方便地进行网络通信的开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值