文档章节

JSON的两种常见解析方式

iOS赵师顺
 iOS赵师顺
发布于 2016/06/27 20:52
字数 363
阅读 26
收藏 0

#import "ViewController.h"

#import "JSONKit.h"

 

@interface ViewController ()

 

@end

 

@implementation ViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    

    NSString *baseString = @"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx";

    NSURL *baseUrl = [NSURL URLWithString:baseString];

    //创建可变的requst对象 设置可变的 要是设置参数;

    NSMutableURLRequest *requst = [NSMutableURLRequest requestWithURL:baseUrl];

//    设置Post请求 格式

    [requst setHTTPMethod:@"POST"];

//    设置boby参数

    NSString *babyString = @"date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213";

    NSData *babyData= [babyString dataUsingEncoding:NSUTF8StringEncoding];

    [requst setHTTPBody:babyData];

    

    NSURLSession *session = [NSURLSession sharedSession];

    NSURLSessionTask *task = [session dataTaskWithRequest:requst completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

//        系统自带的解析类

        [self JSONSystem:data];

//        JSON第三方解析

        [self JSONThireWay:data];

        

    }];

//    开始网络请求

    [task resume];

}

 

#pragma mark - JSON系统自带的解析类

 

- (void)JSONSystem:(NSData *)data{

    //        获取JOSN数据

    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

    NSLog(@"系统自带解析类获得数据:%@",dict);

}

#pragma mark - JSON第三方JSONKit解析

// 导入#import "JSONKit.h"后会报错,是因为不支持arc 需要在Build Phases->CompileSorces ->双击JSONKit.m,添加-fno-objc-arc

- (void)JSONThireWay:(NSData *)data{

    NSDictionary *dict = [data objectFromJSONData];

    NSLog(@"第三方解析获得数据:%@",dict);

}

© 著作权归作者所有

共有 人打赏支持
iOS赵师顺
粉丝 3
博文 74
码字总数 36150
作品 0
昌平
程序员
深入了解Struts2返回JSON数据的原理及具体应用范例

JSON建构于两种结构: “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表 ...

goover1001
2014/03/12
0
0
解决后台json数据返回的字段需要替换的问题

  有时候后台json数据返回的字段含有“id”,也有可能是有时候为了减少代码的冗余,两页面之间只是数据模型个别属性的区别,所以这时候最好是用到模型属性的替换,用新的属性替换返回的jso...

菁欣
07/27
0
0
四种常见的 POST 提交数据方式

HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。 我们...

极客教程
2017/11/17
0
0
此JSON-P非彼jsonp

自从道格拉斯鼓捣出json出来后,这玩意从一开始的数据交换格式界的网红慢慢跻身为大牌明星了,相当一部分xml的粉丝都转向了json。 关于json这里就不做更多介绍了,这里想说的是jsonp。 本文标...

喂码呢
2016/09/15
62
0
api接口中ajax数据请求与数据返回的小坑

AJAX 可以使网页实现异步更新,XMLHttpRequest 是 AJAX 的基础,大部分浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject),XMLHttpRequest对象基于HTTP协议用于在后台与服务...

wx599c47c7bdcad
06/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

初级开发-编程题

` public static void main(String[] args) { System.out.println(changeStrToUpperCase("user_name_abc")); System.out.println(changeStrToLowerCase(changeStrToUpperCase("user_name_abc......

小池仔
今天
4
0
现场看路演了!

HiBlock
昨天
14
0
Rabbit MQ基本概念介绍

RabbitMQ介绍 • RabbitMQ是一个消息中间件,是一个很好用的消息队列框架。 • ConnectionFactory、Connection、Channel都是RabbitMQ对外提供的API中最基本的对象。Connection是RabbitMQ的s...

寰宇01
昨天
9
0
官方精简版Windows10:微软自己都看不过去了

微软宣布,该公司正在寻求解决方案,以减轻企业客户的Windows 10规模。该公司声称,企业客户下载整个Windows 10文件以更新设备既费钱又费时。 微软宣布,该公司正在寻求解决方案,以减轻企业...

linux-tao
昨天
19
0
TypeScript基础入门之JSX(二)

转发 TypeScript基础入门之JSX(二) 属性类型检查 键入检查属性的第一步是确定元素属性类型。 内在元素和基于价值的元素之间略有不同。 对于内部元素,它是JSX.IntrinsicElements上的属性类型...

durban
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部