文档章节

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
api接口中ajax数据请求与数据返回的小坑

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

wx599c47c7bdcad
06/08
0
0
api接口中ajax数据请求与数据返回的小坑

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

daydaydream
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

centos7安装redis及开机启动

配置编译环境: sudo yum install gcc-c++ 下载源码: wget http://download.redis.io/releases/redis-3.2.8.tar.gz 解压源码: tar -zxvf redis-3.2.8.tar.gz 进入到解压目录: cd redis-3......

hotsmile
38分钟前
0
0
Confluence 6 数据库和临时目录

数据库 所有的其他数据库,包括有页面,内容都存储在数据库中。如果你安装的 Confluence 是用于评估或者你选择使用的是 Embedded H2 Database 数据库。数据库有关的文件将会存储在 database...

honeymose
52分钟前
1
0
day62-20180820-流利阅读笔记

1.今日导读 2.带着问题听讲解 3.新闻正文(中英文对照) 4.重点词汇 5.拓展内容

aibinxiao
今天
0
0
分布式锁实现及对比

一、问题介绍 日常工作中很多场景下需要用到分布式锁,例如:任务运行(多个节点同一时刻同一个任务只能在一个节点上运行(分片任务除外)),交易接受(前端交易请求发送时,可能由于两次提...

yangjianzhou
今天
6
0
【AI实战】快速掌握TensorFlow(二):计算图、会话

在前面的文章中,我们已经完成了AI基础环境的搭建(见文章:Ubuntu + Anaconda + TensorFlow + GPU + PyCharm搭建AI基础环境),以及初步了解了TensorFlow的特点和基本操作(见文章:快速掌握...

雪饼
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部