其实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
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];
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];
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]];
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]];
NSDcitionary *dict = {whatever dictionary you just created} //字典转化为模型 Hbb_JSONParser *hbb_JSONParser = [[Hbb_JSONParser alloc] init]; MyObject *myObject = [hbb_JSONParser dictionaryToBean:dict cls:[MyObject class]];
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]];
NSDcitionary *dict = {whatever dictionary you just created} //字典转化为json字符串 Hbb_JSONParser *hbb_JSONParser = [[Hbb_JSONParser alloc] init]; NSString *jsonString = [hbb_JSONParser dictionaryToJsonString:dict];
NSArray *dictArray = {whatever dictionary array you just created} //字典数组转化json字符串 Hbb_JSONParser *hbb_JSONParser = [[Hbb_JSONParser alloc] init]; NSString *jsonArrayStr = [hbb_JSONParser dictionaryArrayToJsonString:dictArray];
MyObject *myObject = {initialize a MyObject object } //模型转化为字典 Hbb_JSONParser *hbb_JSONParser = [[Hbb_JSONParser alloc] init]; NSDictionary *dict = [hbb_JSONParser beanToDictionary:myObject];
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];
MyObject *myObject = [[MyObject alloc] init]; myObject.normalFloat = 2.0; //模型转化为json字符串 Hbb_JSONParser *hbb_JSONParser = [[Hbb_JSONParser alloc] init]; NSString *jsonString = [hbb_JSONParser beanToJsonString:myObject];
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的依赖项解析是将复合和复杂句子拆分为简单句子的理想工