Objective-C Json 使用

Objective-c json

通过使用NSJSONSerialization 可以Json与Foundation的相互转换。下面具体介绍 Objective-c json 的使用。

Json To Fundation

使用 JSONObjectWithData 可以将 Json 转化为 Foundation。Json的顶层可以是{} 或 []因此可以有 NSDictionary 和 NSArray 两种格式。读取使用 ObjectForKey 返回对应的对象。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

NSString* items = @"{"items":["item0","item1","item2"]}";

NSData *data= [items dataUsingEncoding:NSUTF8StringEncoding];

NSError *error = nil;

id jsonObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];

if ([jsonObject isKindOfClass:[NSDictionary class]]){

NSDictionary *dictionary = (NSDictionary *)jsonObject;

NSLog(@"Dersialized JSON Dictionary = %@", dictionary);

}else if ([jsonObject isKindOfClass:[NSArray class]]){

NSArray *nsArray = (NSArray *)jsonObject;

NSLog(@"Dersialized JSON Array = %@", nsArray);

} else {

NSLog(@"An error happened while deserializing the JSON data.");

}

NSDictionary *dict = (NSDictionary *)jsonObject;

NSArray* arr = [dict objectForKey:@"items"];

NSLog(@"list is %@",arr);

Fundation To Json

使用 dataWithJsonObject 可以将 Fundation 转换为 Json。其中 options:NSJSONWritingPrettyPrinted 是分行输出json ,无空格输出使用 option:kNilOptions。

下面这段代码是IOS内购获取商品列表。获取后,将内容添加到Json中。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

NSArray *myProduct = response.products;

NSDictionary *myDict;

NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithCapacity: 4];

for(int i  = 0;i<myProduct.count;++i)

{

//NSLog(@"----------------------");

//NSLog(@"Product title: %@" ,[myProduct[i] localizedTitle]);

//NSLog(@"Product description: %@" ,[myProduct[i] localizedDescription]);

//NSLog(@"Product price: %@" ,[myProduct[i] price]);

//NSLog(@"Product id: %@" ,[myProduct[i] productIdentifier]);

myDict = [NSDictionary dictionaryWithObjectsAndKeys:

[myProduct[i] localizedTitle], @"title",

[myProduct[i] localizedDescription], @"desc",

[myProduct[i] price], @"price",

[myProduct[i] productIdentifier], @"product", nil];

[dict setValue: myDict forKey: [myProduct[i] productIdentifier]];

}

if([NSJSONSerialization isValidJSONObject:dict])

{

NSError* error;

NSData *str = [NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:&error];

NSLog(@"Result: %@",[[NSString alloc]initWithData:str encoding:NSUTF8StringEncoding]);

}

else

{

NSLog(@"An error happened while serializing the JSON data.");

}

原文链接: http://www.songyang.net/objective-c-json/

时间: 2024-10-18 10:23:16

Objective-C Json 使用的相关文章

objective C, parse json时注意事项

例: dict为从API请求返回的json调用 NSJSONSerialization JSONObjectWithData:方法得到的NSDictionary实例. 当执行以下语句时linkString不一定为NSString类型,需要进一步判断,否则当调用NSString特有的函数时(例如 [linkString length])可能会crash. NSString *linkString = [dict objectForKey:@"Link"]; //此时要加以下判断代码确保得

UI_16 XML、JSON数据结构解析

从事先规定好的格式中提取数据,即为解析.iOS开发常见的解析有:XML解析.JSON解析 一.XML解析 XML:Extensible Markup language(可扩展标记语?),主流数 据格式之?,可以?来存储和传输数据. XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML.TouchXML.KissXML.TinyXML和GDataXML.如何选择? 以下几点摘自iOS平台XML解析类库对比和安装说明

springmvc传递json数据到前台显示

需要两个包 jackson-core-asl, jackson-mapper-asl controller @RequestMapping(value="/findEduList",produces="application/json;charset=UTF-8") @ResponseBody public List<Education> findEduList(String keyword, HttpServletRequest request,Htt

数据解析之XML和JSON

1. 解析的基本的概念 解析:从事先规定好的格式中提取数据 解析前提:提前约定好格式,数据提供方按照格式提供数据.数据获取方则按照格式获取数据 iOS开发常见的解析:XML解析.JOSN解析 2. XML数据结构 1> 概述 XML:Extensible markup language(可扩展标记语言),主流数据格式之一,可以用来存储和传输数据. 2> XML数据格式的功能 数据交换 内容管理 用作配置文件 3> XML数据格式的语法 声明 节点使用一对标签表示:起始和结束标签. 根节点

(The application/json Media Type for JavaScript Object Notation (JSON))RFC4627-JSON格式定义

原文  http://laichendong.com/rfc4627-zh_cn/ 摘要 JavaScript Object Notation (JSON)是一个轻量级的,基于文本的,跨语言的数据交换格式.它从ECMAScript编程语言标准(ECMAScript Programming Language Standard)衍生而来.JSON定义了一组用于表示结构化数据的可移植的格式化规则. 1. 简介 JavaScript Object Notation (JSON)是用于结构化数据序列化的一

Swift语言中如何使用JSON数据教程

原文:Swift语言中如何使用JSON数据教程 这是一篇翻译文章,原文出处:http://www.raywenderlich.com/82706/working-with-json-in-swift-tutorial JSON(全称:JavaScript Object Notation),是网络服务中传输数据的常用方法,JSON因为容易使用,且可读性强, 所以非常受到欢迎. 下面是个JSON的一个片段: [ {"person": {"name":"Dani

RFC 4627 JSON

Network Working Group D. Crockford Request for Comments: 4627 JSON.org Category: Informational July 2006 The application/json Media Type for JavaScript Object Notation (JSON) Status of This Memo This memo provides information for the Internet communi

springmvc json数据

的 @RequestMapping("/getAllEdu") @ResponseBody public void getAllEdu(HttpServletRequest request,HttpServletResponse response){ List<Education> eduList = eduService.findAll(); //request.setAttribute("edus", edus); //response.setCha

Objective-C

1.Objective-C语言特性 2.static __block const 3.Object-C的内存管理 4.RunLoop 5.iOS消息传递机制 6.iOS程序生命周期 7.MVC设计模式MVVM 8.UIView CALayer Frame 与bounds 9.根类 NSObject 10.多线程简介 11.数据持久化 12.JSON和XML HTML 自定义报文 13.网络编程 HTTP TCP/IP Socket  ASI AFNetwork 14.AppStore上传 及远程

Day4 - 迭代器&amp;生成器、装饰器、Json &amp; pickle 数据序列化、软件目录结构规范

---恢复内容开始--- 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 需求:列表a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求把列表里的每个值加1 1 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 2 b = [] 3 for i in a: 4 b.append(i+1) 5 a = b 6 print(a) 普通青