当前位置: 首页 > 软件库 > iOS代码库 > >

JSONParser

JSON转化工具类
授权协议 未知
开发语言 Objective-C
所属分类 iOS代码库
软件类型 开源软件
地区 国产
投 递 者 杜晨朗
操作系统 iOS
开源组织
适用人群 未知
 软件概览

iOS数据转化组件 (JSONParser),支持JSON字符串、模型、字典、模型数组、字典数组之间相互的转化

为什么要写转化组件?

其实github上已经有很多优秀的JSON转化库,我见过SBJSON和JSONModel这两个库就写的着实不错,那我为什么还要写多一个库出来呢?

  • 因为我要写一个比他们更强大的库(说起来挺害羞的)

优势

  • 1.和JSONModel相比, 我的库只是单纯作为转化类,并不需要模型类继承JSONModel类,

  • 并且我写出来的库,可以自动转化(NSDate *)格式

  • 2.Hbb_JSONParser还支持"类中类"的转化

声明: 所有的转化都是一句代码(为了方便阅读才写多了几行代码)

转化的实例类

@interface MyObject : NSObject

@property (nonatomic, strong) NSDate *date;
@property (nonatomic, assign) int normalInt;
@property (nonatomic, assign) long normalLong;
@property (nonatomic, assign) NSInteger integer;
@property (nonatomic, strong) MyInnerObject *myInnerObject; //"类中类"
@property (nonatomic, assign) CGFloat cgfloat;
@property (nonatomic, assign) float normalFloat;

@property (nonatomic, strong) NSArray *array;
@property (nonatomic, strong) NSDictionary *dictionary;
@property (nonatomic, strong) NSString *str;
@end

@interface MyInnerObject : NSObject
@property (nonatomic, strong) NSString *str;
@property (nonatomic, strong) NSString *str2;

@end

支持的功能

1、json字符串转化为字典

 NSString *jsonStr = @"{\"date\":\"2014-06-07 12:34:54\",\"normalInt\":2 , \"normalLong\":24, \"myInnerObject\":{\"str\":\"字符串1\"}, \"cgfloat\":1.0, \"normalFloat\":2.0, \"array\":[\"1\", \"2\"], \"dictionary\":{\"key\":\"value\"} }";

 Hbb_JSONParser *hbb_JSONParser = [[Hbb_JSONParser alloc] init];
 //json字符串转化为字典 
 MyObject *myObject = [hbb_JSONParser jsonStringToDictionary:jsonStr];

2、json字符串转化为字典数组

  NSString *jsonArrayStr = @"[{\"date\":\"\",\"normalInt\":2 , \"normalLong\":24, \"myInnerObject\":{\"str\":\"字符串1\"}, \"cgfloat\":1.0, \"normalFloat\":2.0, \"array\":[\"1\", \"2\"], \"dictionary\":{\"key\":\"value\"} }, {\"date\":\"2014-06-07 12:34:54\",\"normalInt\":2 , \"normalLong\":24, \"myInnerObject\":{\"str\":\"字符串1\"}, \"cgfloat\":1.0, \"normalFloat\":2.0, \"array\":[\"1\", \"2\"], \"dictionary\":{\"key\":\"value\"} }, {\"date\":\"2014-06-07 12:34:54\",\"normalInt\":2 , \"normalLong\":24, \"myInnerObject\":{\"str\":\"字符串1\"}, \"cgfloat\":1.0, \"normalFloat\":2.0, \"array\":[\"1\", \"2\"], \"dictionary\":{\"key\":\"value\"} }]";

 Hbb_JSONParser *hbb_JSONParser = [[Hbb_JSONParser alloc] init];

 //json字符串转化为字典数组
 NSArray *beanArray = [hbb_JSONParser jsonStringToDictionaryArray:jsonArrayStr];

3、json字符串转化为模型

  NSString *jsonStr = @"{\"date\":\"2014-06-07 12:34:54\",\"normalInt\":2 , \"normalLong\":24, \"myInnerObject\":{\"str\":\"字符串1\"}, \"cgfloat\":1.0, \"normalFloat\":2.0, \"array\":[\"1\", \"2\"], \"dictionary\":{\"key\":\"value\"} }";

 Hbb_JSONParser *hbb_JSONParser = [[Hbb_JSONParser alloc] init];

 //json字符串转化为模型
 MyObject *myObject = [hbb_JSONParser jsonStringToBean:jsonStr cls:[MyObject class]];

4、json字符串转化为模型数组

  NSString *jsonArrayStr = @"[{\"date\":\"\",\"normalInt\":2 , \"normalLong\":24, \"myInnerObject\":{\"str\":\"字符串1\"}, \"cgfloat\":1.0, \"normalFloat\":2.0, \"array\":[\"1\", \"2\"], \"dictionary\":{\"key\":\"value\"} }, {\"date\":\"2014-06-07 12:34:54\",\"normalInt\":2 , \"normalLong\":24, \"myInnerObject\":{\"str\":\"字符串1\"}, \"cgfloat\":1.0, \"normalFloat\":2.0, \"array\":[\"1\", \"2\"], \"dictionary\":{\"key\":\"value\"} }, {\"date\":\"2014-06-07 12:34:54\",\"normalInt\":2 , \"normalLong\":24, \"myInnerObject\":{\"str\":\"字符串1\"}, \"cgfloat\":1.0, \"normalFloat\":2.0, \"array\":[\"1\", \"2\"], \"dictionary\":{\"key\":\"value\"} }]";

 //json字符串转化为模型数组
  Hbb_JSONParser *hbb_JSONParser = [[Hbb_JSONParser alloc] init];
 NSArray *beanArray = [hbb_JSONParser jsonStringToBeanArray:jsonArrayStr cls:[MyObject class]];

5、字典转化为模型

  NSDcitionary *dict = {whatever dictionary you just created}

  //字典转化为模型
   Hbb_JSONParser *hbb_JSONParser = [[Hbb_JSONParser alloc] init];
    MyObject *myObject = [hbb_JSONParser dictionaryToBean:dict cls:[MyObject class]];

6、字典数组转化为模型数组

 NSArray *dictArray = {whatever dictionary array you just created}

 //字典数组转化为模型数组
  Hbb_JSONParser *hbb_JSONParser = [[Hbb_JSONParser alloc] init];
 NSArray *beanArray =[hbb_JSONParser dictionaryArrayToBeanArray:dictArray cls:[MyObject class]];

7、字典转化为json字符串

  NSDcitionary *dict = {whatever dictionary you just created}

  //字典转化为json字符串
     Hbb_JSONParser *hbb_JSONParser = [[Hbb_JSONParser alloc] init];
  NSString *jsonString = [hbb_JSONParser dictionaryToJsonString:dict];

8、字典数组转化json字符串

 NSArray *dictArray = {whatever dictionary array you just created}

 //字典数组转化json字符串
  Hbb_JSONParser *hbb_JSONParser = [[Hbb_JSONParser alloc] init];

 NSString *jsonArrayStr = [hbb_JSONParser dictionaryArrayToJsonString:dictArray];

9、模型转化为字典

 MyObject *myObject = {initialize a MyObject object }

 //模型转化为字典
 Hbb_JSONParser *hbb_JSONParser = [[Hbb_JSONParser alloc] init];
 NSDictionary *dict = [hbb_JSONParser beanToDictionary:myObject];

10、模型数组转化为字典数组

MyObject *myObject = [[MyObject alloc] init];
myObject.normalFloat = 2.0;
 NSArray *beanArray = @[myObject];

 //模型数组转化为字典数组
  Hbb_JSONParser *hbb_JSONParser = [[Hbb_JSONParser alloc] init];
 NSArray *dictArray = [hbb_JSONParser beanArrayToDictionaryArray:beanArray];

11、模型转化为json字符串

MyObject *myObject = [[MyObject alloc] init];
myObject.normalFloat = 2.0;

 //模型转化为json字符串
  Hbb_JSONParser *hbb_JSONParser = [[Hbb_JSONParser alloc] init];
NSString *jsonString = [hbb_JSONParser beanToJsonString:myObject];

12、模型数组转化为json字符串

MyObject *myObject = [[MyObject alloc] init];
myObject.normalFloat = 2.0;
NSArray *beanArray = @[myObject];

//模型数组转化为json字符串
Hbb_JSONParser *hbb_JSONParser = [[Hbb_JSONParser alloc] init];
NSString *jsonArrayString = [self.hbb_JSONParser beanArrayToJsonString:self.myObjectArray cls:[MyObject class]];
  • 介绍Jackson JsonParser解析json 前文介绍了通过JsonNode解析json,本文深入底层工具JsonParser的用法。 1. 概述 实际应用中经常需要解析json数据,如查询NoSql数据库时响应数据格式通常为Json格式。JsonNode可以非常方便地实现,JsonParser类是底层JSon解析器,类似于Java使用stAx解析xml,但JsonParser仅仅解析Js

  • – Start 点击此处观看本系列配套视频。 除了 ObjectMapper 和 JsonNode 外,Jackson 还提供了更底层 JsonParser 和 JsonGenerator 来读写 JSON。 package shangbo.jackson.demo21; import java.io.File; import com.fasterxml.jackson.core.JsonEn

  • 偶然发现Gson还有JsonParser这个解析类,下面写一个例子尝试使用: String jsonString="{'flag':true,'data':{'name':'张三','age':18,'deleteFlag':false}}"; // 获得 解析者 <span style="color:#FF0000;">JsonParser parser =new JsonParser

  • 解析json字符串可以像解析DOM一样,解析每一个节点。Gson的jar包中提供了JsonParser类,专门用于解析json字符串的,注意只是json节点的内容解析出来,并不像前两节把整个json字符串反序列化为一个对象。 public static void main(String[] args) { String jsonString = "{\"id\":1, \"

  • 最近在练习python,于是尝试使用python编写json解析器,目前已经大体实现,通过了jsonTestFile.txt中的测试例子。代码github网址为:https://github.com/siukwan/jsonparser 下面重点介绍编写过程中遇到的一些需要注意的问题。 1.json的主体内容 我这里所提及的json主体内容主要是指两大类:1.对象object;2.数组array。

 相关资料
  • 一、简介 京东小程序转换器,是京东官方团队提供的一款真正实现小程序一键转换的工具,帮助开发者提升开发效率,无需再为维护多套代码仓库而烦恼,让京东小程序的开发流程变得轻松而愉悦。 工具特性如下: 一键转换,可视化操作,简单易用 配备详细的文档操作说明,简单易学 转换过程搭配丰富的日志输出,直观明了 满足绝大多数转换工作需要,性能优越 二、使用说明 1、打开待转化小程序: 点击左侧栏“打开”,打开一个

  • 问题内容: 前一段时间,我使用了一种PNG优化服务,称为(我认为)“ smush it”。您向它提供了一个网络链接,它返回了所有PNG图像的zip压缩文件,它们的文件大小很好,很好地被弄脏了…… 我想在网站的图片上传过程中实现类似的优化功能;有谁知道我可以使用的预先存在的库(最好是PHP或Python)?简短的Google指示我使用了几种命令行样式工具,但我宁愿不走这条路。 问题答案: 用PHP执

  • 问题内容: 是否有一些UML工具可用来绘制数据库设计并生成用于创建数据库的SQL脚本? 问题答案: 我可以从http://www.sparxsystems.com.au/推荐Enterprise Architect 。

  • 等高线生成        在“工具”菜单栏中点击等高线生成,弹出对话框如下。        加载要生成等高线的地形高程数据,设置导出的文件位置(最后生成为.shp文件),根据已有的地形高程数据进行设置合适的等高线间距(间距大于地形高程则无法生成),点击生成等高线。        点击查看等高线点击查看等高线如图,可以导入可加载shp格式的软件中查看。如果需要预览一片区域的等高线效果,请使用“等高线

  • 自动化所有测试流程并对其进行配置以实现速度和灵活性至关重要。此过程称为DevOps自动化。 维护庞大的IT基础架构的大型DevOps团队面临的困难可以简要分为六个不同的类别。 基建自动化 配置管理 部署自动化 绩效管理 日志管理 监测 下面我们来看看每个类别中的一些工具以及它们如何解决痛点 - 1. 基建自动化 亚马逊网络服务(AWS):作为云服务,无需实际存在于数据中心。此外,它们易于按需扩展。

  • 这是一个化学相关的图形化工具,包括一个二维的化学公式编辑器以及化学计算器等。

  • 痛点 在Java开发中我们要面对各种各样的类型转换问题,尤其是从命令行获取的用户参数、从HttpRequest获取的Parameter等等,这些参数类型多种多样,我们怎么去转换他们呢?常用的办法是先整成String,然后调用XXX.parseXXX方法,还要承受转换失败的风险,不得不加一层try catch,这个小小的过程混迹在业务代码中会显得非常难看和臃肿。 Convert类 Convert类可

  • 问题内容: 使用Java可以简化文本的最佳工具是什么? 这是文本简化的示例: 问题答案: 我认为您的问题是将复杂或复合句子转换为简单句子的任务。根据文献的句子类型,从一个独立的子句中构建一个简单的句子。复合和复杂的句子至少由两个子句构成。另外,从句必须包含主语和动词。 因此,您的任务是将句子分解为构成句子的子句。 Stanford CoreNLP的依赖项解析是将复合和复杂句子拆分为简单句子的理想工