1 前言
通过 NSJSONSerialization 这个类的 dataWithJSONObject:options:error:方法来实现,Array 和 dictionary 序列化成 JSON 对象。方便在网络中传输。

2 代码实例
TestDemo.m

[plain]
(void)converseToJson{ 
    NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init]; 
    [dictionary setValue:@"Archy" forKey:@"First Name"]; 
    [dictionary setValue:@"Robbins" forKey:@"Last Name"]; 
    [dictionary setValue:[NSNumber numberWithUnsignedInteger:51] forKey:@"Age"]; 
    NSArray *arrayOfArchysChildren = [[NSArray alloc] initWithObjects: 
                                        @"Anthony's Son 1", 
                                        @"Anthony's Daughter 1", 
                                        @"Anthony's Son 2", 
                                        @"Anthony's Son 3", 
                                        @"Anthony's Daughter 2", nil]; 
    [dictionary setValue:arrayOfArchysChildren forKey:@"children"]; 
    NSError *error = nil; 
    //NSJSONWritingPrettyPrinted:指定生成的JSON数据应使用空格旨在使输出更加可读。如果这个选项是没有设置,最紧凑的可能生成JSON表示。 
    NSData *jsonData = [NSJSONSerialization 
                        dataWithJSONObject:dictionary options:NSJSONWritingPrettyPrinted error:&error]; 
    if ([jsonData length] > 0 && error == nil){ 
        NSLog(@"Successfully serialized the dictionary into data."); 
        //NSData转换为String 
        NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
        NSLog(@"JSON String = %@", jsonString); 
    } 
    else if ([jsonData length] == 0 && 
             error == nil){ 
        NSLog(@"No data was returned after serialization."); 
    } 
    else if (error != nil){ 
        NSLog(@"An error happened = %@", error); 
    } 
     
}

-(void)converseToJson{
    NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
    [dictionary setValue:@"Archy" forKey:@"First Name"];
    [dictionary setValue:@"Robbins" forKey:@"Last Name"];
    [dictionary setValue:[NSNumber numberWithUnsignedInteger:51] forKey:@"Age"];
    NSArray *arrayOfArchysChildren = [[NSArray alloc] initWithObjects:
                                        @"Anthony's Son 1",
                                        @"Anthony's Daughter 1",
                                        @"Anthony's Son 2",
                                        @"Anthony's Son 3",
                                        @"Anthony's Daughter 2", nil];
    [dictionary setValue:arrayOfArchysChildren forKey:@"children"];
    NSError *error = nil;
    //NSJSONWritingPrettyPrinted:指定生成的JSON数据应使用空格旨在使输出更加可读。如果这个选项是没有设置,最紧凑的可能生成JSON表示。
    NSData *jsonData = [NSJSONSerialization
                        dataWithJSONObject:dictionary options:NSJSONWritingPrettyPrinted error:&error];
    if ([jsonData length] > 0 && error == nil){
        NSLog(@"Successfully serialized the dictionary into data.");
        //NSData转换为String
        NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
        NSLog(@"JSON String = %@", jsonString);
    }
    else if ([jsonData length] == 0 &&
             error == nil){
        NSLog(@"No data was returned after serialization.");
    }
    else if (error != nil){
        NSLog(@"An error happened = %@", error);
    }
   
}
控制台结果

2013-05-13 17:14:26.087 ToJsonTest[4890:303] Successfully serialized the dictionary into data.

2013-05-13 17:14:26.089 ToJsonTest[4890:303] JSON String = {

"children" : [

"Anthony's Son 1",

"Anthony's Daughter 1",

"Anthony's Son 2",

"Anthony's Son 3",

"Anthony's Daughter 2"

],

"Age" : 51,

"First Name" : "Archy",

"Last Name" : "Robbins"

}

转载于:https://www.cnblogs.com/Xer-Lee/p/3154849.html

IOS开发之把 Array 和 Dictionaries 序列化成 JSON 对象相关推荐

  1. 利用Jquery将表单序列化成JS对象

    //表单序列化成JSON对象 $.fn.serializeObject = function () { var o = {}; var a = this.serializeArray(); $.eac ...

  2. 【iOS开发】——Category底层原理、Extension、关联对象

    [iOS开发]--Category底层原理.Extension.关联对象 Category是什么?它可以用来干什么? Category特点 Category的实质以及实现过程 Category结构体 ...

  3. java 序列化成xml文件_将Java对象序列化成JSON和XML格式

    1.先定义一个Java对象Person: public class Person { String name; int age; int number; public String getName() ...

  4. python转json中文乱码_python 序列化成json 乱码问题的解决

    今天又网友问到, 在python 下将一个对象序列化成 json 时经常会报乱码, 甚至会报错, 的确会出现这种情况,因为在python 中默认使用的是 simplejson 库.但其实是可以通过配置 ...

  5. Jquery 将表单序列化为Json对象

    大家知道Jquery中有serialize方法,可以将表单序列化为一个"&"连接的字符串,但却没有提供序列化为Json的方法.不过,我们可以写一个插件实现. 我在网上看到有 ...

  6. [原创]一种自动地将继承自NSObject的自定义类序列化成JSON的方法

    最近因为项目需求,需要将一些自定义的类序列化为JSON,网上有很多好用的第三方序列化工具,但都只能序列化一些基本类型,如NSNumber,NSString与NSDictionary这种,没有一种第三方 ...

  7. 对象序列化成JSON格式

    json是一种轻量级的数据交换语言,将对象序列化为json格式,可以在网络上传输,且各个平台都有成熟的工具,可以很快的将json反序列化为对应语言所需要的格式. 将java对象序列化为json格式关键 ...

  8. com.fasterxml.jackson将对象序列化成json时,出现在json里的属性名称是怎么来的

    如果不考虑用任何annotation指定出现在json string里的属性名称的话,默认的逻辑是将getter方法里,"get"之后的字符串的首字母小写. 比如: getJerD ...

  9. C#将对象序列化成JSON字符串

    using System.Web.Script.Serialization; public void ProcessRequest(HttpContext context) { context.Res ...

  10. form表单序列化成json数据 将空值用空字符串代替(form表单中checkBox数据会用逗号隔开拼接成字符串)...

    2019独角兽企业重金招聘Python工程师标准>>> $.fn.notEmptyserializeJson = function () {var o = {};var a = th ...

最新文章

  1. C技巧:结构体参数转成不定参数
  2. 剑指offer: 斐波那契数列 python 实现
  3. SQL SERVER数据库中 是否可以对视图进行修改删除
  4. (转)Kafka 消费者 Java 实现
  5. 纸巾,理由最充分的涨价
  6. Property ‘id‘ not found on type java.lang.String问题解决
  7. MYsql隔离级别问题和解决方案,Spring的七大传播机制
  8. 正则表达式 - php正则匹配内容?
  9. 毕业设计 大数据房价数据分析及可视化 - python 房价分析
  10. JAVA创建内部类对象
  11. 店宝宝:10年前的小游戏集体复活
  12. MATLAB中把Excel数据矩阵化,excel将表格数据矩阵-MATLAB怎么读取EXCEL中矩阵形式的数据,并存放在一......
  13. STM32—LED单灯闪烁之软件延时
  14. 闲聊蓝桥杯JAVA - 罗马数字
  15. 15 THINGS ALL GIRLS SHOULD KNOW ABOUT THEIR VAGINA
  16. 相对布局RelativeLayout音乐播放器界面
  17. 编写代码实现如下内容:if语句实现考试成绩分等级。
  18. 小学五年级计算机听课记录表,小学音乐听课记录15篇
  19. 测试小故事21:语言的力量
  20. CSAPP-LAB3-Attack

热门文章

  1. Rancher 2.2.2 Stable版本发布,生产可用!
  2. 弹幕,是怎样练成的?
  3. python3之udp
  4. App Shortcuts 快捷方式 Android7 1 的3D Touch
  5. 【莫队算法】URAL - 2080 - Wallet
  6. 非常好的关于android安全的博客
  7. lidar与相机联合标定开源软件介绍
  8. 09月28日 pytorch与resnet(四)三种主要的转移学习方案,微调ConvNet,ConvNet 作为固定特征提取器
  9. Invisible Perturbations: Physical Adversarial Examples Exploiting the Rolling Shutter Effect 论文解读
  10. 第十二章 网络搭建及训练