JSONString 与 JSONData 与字典或者数组互相转化
JSON
JSON相关的,数据彼此间的转化进行了简单地封装,源码如下,支持arc与非arc
YXJSON.h + YXJSON.m
// // YXJSON.h // // JSONString 与 JSONData 与 字典或者数组互相转化 // // Copyright (c) 2014年 YouXian. All rights reserved. // #import <Foundation/Foundation.h>@interface YXJSON : NSObject/**将字典或者数组转换为JSON格式字符串@return JSON格式字符串*/ + (NSString *)JSONStringWithDictionaryOrArray:(id)dictionaryOrArray;/**将字典或者数组转换为JSON的Data@return JSON的Data*/ + (NSData *)JSONSDataWithDictionaryOrArray:(id)dictionaryOrArray;/**将JSON格式字符串转换为字典或者数组@return 字典或者数组*/ + (id)dictionaryOrArrayWithJSONSString:(NSString *)jsonString;/**将JSON的Data转换为字典或者数组@return 字典或者数组*/ + (id)dictionaryOrArrayWithJSONSData:(NSData *)jsonData;@end
// // YXJSON.m // // JSONString 与 JSONData 与 字典或者数组互相转化 // // Copyright (c) 2014年 YouXian. All rights reserved. // #if __has_feature(objc_arc) #define YX_release(obj) #define YX_autorelease(obj) #else #define YX_release(obj) [obj release] #define YX_autorelease(obj) [obj autorelease] #endif#import "YXJSON.h"@implementation YXJSON+ (NSString *)JSONStringWithDictionaryOrArray:(id)dictionaryOrArray {if (dictionaryOrArray == nil){return nil;}//options: Pass 0 if you don't care about the readability of the generated stringNSData *data = [NSJSONSerialization dataWithJSONObject:dictionaryOrArrayoptions:NSJSONWritingPrettyPrintederror:nil];if (data == nil){return nil;}NSString *string = [[NSString alloc] initWithData:dataencoding:NSUTF8StringEncoding];YX_autorelease(string);return string; }+ (NSData *)JSONSDataWithDictionaryOrArray:(id)dictionaryOrArray {if (dictionaryOrArray == nil){return nil;}//options: Pass 0 if you don't care about the readability of the generated stringNSData *data = [NSJSONSerialization dataWithJSONObject:dictionaryOrArrayoptions:NSJSONWritingPrettyPrintederror:nil];return data; }+ (id)dictionaryOrArrayWithJSONSString:(NSString *)jsonString {if (jsonString == nil){return nil;}NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];return [NSJSONSerialization JSONObjectWithData:jsonDataoptions:NSJSONReadingMutableLeaves|| NSJSONReadingMutableContainerserror:nil]; }+ (id)dictionaryOrArrayWithJSONSData:(NSData *)jsonData {if (jsonData == nil){return nil;}return [NSJSONSerialization JSONObjectWithData:jsonDataoptions:NSJSONReadingMutableLeaves|| NSJSONReadingMutableContainerserror:nil]; }@end
没有将其单独的封装到 NSString NSData NSArray NSDictionary 相关类目中,实际上用类目的方式使用更加方便,有需求可以自己弄,但文件多较为繁琐,本人不习惯.
转载于:https://www.cnblogs.com/YouXianMing/p/3620515.html
JSONString 与 JSONData 与字典或者数组互相转化相关推荐
- Swift 字典转数组
Swift 字典转数组 1.Swift 类型的字典(Dictionary) let dic = ["name":"Tom","gender" ...
- Go Little Book - 第三章 - 字典 ,数组和切片
2019独角兽企业重金招聘Python工程师标准>>> 第三章 - 字典 ,数组和切片(Chapter 3 - Maps, Arrays and Slices) So far we' ...
- iOS 第五期考核题(字典与数组嵌套,字典的排序/删除)
1 /** 2 * 第1题 请将如下数据存储成字典,并将字典内容以字符串形式输出,输出:"XXX,年龄XXX岁,职业XXX"(将XXX替换为相应的数据). 3 */ 4 5 NSS ...
- 字典存入数组,字典删除,班级,年龄同时排序
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...
- OC字典存入数组,输出数组中数据,并且删除小明一项,然后进行排序、现根据班级排序,班级相同的用年龄进行排序...
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...
- linux shell 字典,shell数组与字典总结
[TOC] > shell里面也有数组和所谓的字典,数组分为索引数组和关联数组(关联数组也就是在其他语言里面的字典,在数组和字典的操作方式基本一致). # 一. 数组 ## 1.1 创建数组 - ...
- python字典键值对转化为相应的变量名和变量值
将python字典键值对转化为相应的变量名和变量值可以使用以下方法: globals().update({"name":"value"}) locals().u ...
- 输出英文字母java数组_JAVA语言之通过生成随机数组来转化为字母进行输出的类...
本文主要向大家介绍了JAVA语言之通过生成随机数组来转化为字母进行输出的类,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 今天又写了一个通过生成随机数组来转化为字母进行输出的类,但是 ...
- 一个字典树问题--电话号码转化问题(POJ 1002 487-3279)
字典树,又称为单词查找树,Trie树.是一种用于快速检索多叉树的结构.典型应用于统计,排序和保存大量字符串.利用字符串的前缀来减少存储空间,减少无谓的比较,提高查询效率. 字典树根节点不包含任何数据, ...
- js char数组int数组互相转化
js char数组int数组互相转化 需求:将 ['1','2','3'] 转为 [1,2,3] 实现: 方法一: ['1','2','3'].map(Number) 方法二: ['1','2','3 ...
最新文章
- Python发展迅猛,如何在Python热中脱颖而出了?
- 【文本分类】基于BERT预训练模型的灾害推文分类方法、基于BERT和RNN的新闻文本分类对比
- 数据库历险记(二) | Redis 和 Mecached 到底哪个好?
- Python瓦匠 —— 正则表达式(五)
- Vue项目中如何设置动态的TDK
- mysql链路跟踪工具_EasySwoole利用链路追踪组件制作甩锅工具
- 获取数据 - 下载附件解压附件 - Python代码
- web.xml配置文件详解
- C#中扩展StringBuilder支持链式方法
- 【转】【OPenGL】OPenGL 画图板-- 中点算法画圆
- title()、upper()、lower()的用法
- 【web前端特效源码】使用HTML5+CSS3+JavaScript制作3D 立体图片动画效果~~适合初学者~超简单~ |前端开发|IT软件
- 彻底格式化系统启动U盘(基于win10)
- 前端改好,验证码显示不出来!!
- 普通计算机硬件cpu,cpu怎么看型号 教你怎么看电脑cpu型号(软件+硬件)
- python 下载公众号文章_最便捷的微信公众号文章下载器——基于Python爬虫微信文章...
- Mysql中索引相关问题
- 天池比赛——新闻文本分类比赛(零基础入门NLP)
- 判断ios系统、qq浏览器,iosqq内置浏览器,微信内置浏览器
- 【STM32】PWM输出原理