|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
这个类是具体的数据对象用上面的例子说就是衣服一般都是继承这个对象XCode可以帮你做具体搜搜这种文章很多NSFetchRequest用来执行CD请求的相当与select语句外壳NSEntityDescription用来描述实体的接待离开”做一个怠惰但富有效果的Android开辟者”系列的第3部分。假如你在JSON剖析上是一个怠惰的Android开辟者但又想经由过程利用JSON剖析类库变得高效,那末本文就是为你筹办的。
本系列至今:
- 第1部分:我们看了RoboGuice,一个依附注进类库,利用它我们能够削减基础榜样代码,节俭工夫,从而在Android开辟中进步临盆力。
- 第2部分:我们检察并切磋了Genymotion,与原生仿真器比拟,是一个火箭速率、超疾速的仿真器。在开辟使用的时分我们可使用Genymotion,而且能够疾速的测试使用,从而进步临盆力。
在本部分
在本部分中,我们将切磋一些市场上存在的JSON剖析类库,我们在使用开辟中可使用个中的任何一个,在改良使用功能的同时也进步了临盆力。
JSON剖析
此前我写过一篇关于利用org.json包上面的类举行”JSON剖析”的文章。假如你不懂得JSON剖析大概没有读过那篇文章,那末点这里:Android中的JSON剖析。
如今我们不利用原生的包(org.json)和它的类,假如我们利用一些网上存在的JSON剖析类库,我们能够改良使用的功能,上面列出了Android开辟者们普遍利用的2个类库:
1.GSON
2.Jackson
“在org.json包和它的类可用的情形下我们为何要利用这些JSON剖析类库呢?”
在切磋和研讨这些类库之前,让我们深切的懂得一下org.json包。当有XML剖析需求的时分,有2个通用的战略:
1.DOM
2.SAX
DOM(文档对象模子)将呼应/数据全体都加载到内存中,同意开辟者依据本人的志愿查询数据。
SAX(XML复杂API)逐一节点剖析,并接纳从上到下的体例遍历。最次要的事变是它实行剖析的时分不存储数据和以流的情势将数据展现给用户。第2个长处是和DOM比拟,剖析速率一样快,可是节俭内存。
如今,当有JSON剖析需求的时分,一般进进我们脑海的是JSONObject和JSONArray类。明显它是JSON剖析默许的选择,由于它很复杂,易于利用,而且从最入手下手的时分便可用了(API级别1)。
但JSONObject和JSONArray类遵守了DOM剖析手艺,以是在剖析之前必要把全体的JSON数据/呼应加载到字符串中,因而这是它最次要和最年夜的弱点。在剖析年夜的JSON呼应/文档的时分这大概不是一个好主张,而且是很低效的。
1.GSON
为了供应一个备选而且克制上述的成绩,Google供应了一个JSONReader,它将数据流作为数据,和SAX一样,可是这个类在API级别11和更高版本上可用,以是假如你想兼容低版本,它没有任何的相干功效。
可是你能够经由过程利用GSON类库来为低版本供应兼容性,由于Google已将它开源并供应了JAR文件。
整体下去说,android.util.JsonReader和com.google.gson.stream.JSONReader代码一样,可是利用GSON作为一个自力类库的次要优点是,它老是有最新的工具和改善。
甚么是GSON
它实践上是一个自力的开源类库,用来将JSON数据转换为Java对象和反向转换。复杂的说,它能够用于剖析和天生JSON。GSON能够用于恣意的Java对象,包含已存在的没有源代码的对象。它只是复杂地供应了toJson和fromJson办法来转换Java对象到JSON和反向转换。
你能够从这里检察更具体的信息和下载GSON类库:https://code.google.com/p/google-gson/。
比方:
1
2
3
4
5
6
7
8
9
10
[
{
"name":"Paresh",
"address":"ahmedabad"
},
{
"name":"Hiren",
"address":"America"
}
]
1
2
3
Gsongson=newGson();
TypecollectionType=newTypeToken<List<PersonBean>>(){}.getType();
List<PersonBean>details=gson.fromJson(strJsonData,collectionType);
2.Jackson
这是另外一个多用处、开源的处置JSON数据格局的Java类库。正像他们网站上说的,Jackson的方针是成为疾速、准确、轻量、切合人体工程学的最好组合。
你能够从这里下载Jackson类库:http://wiki.fasterxml.com/JacksonDownload,在这里浏览文档:http://wiki.fasterxml.com/JacksonDownload;
我应当利用哪一种类库,GSON大概Jackson大概其他的?
哪一个类库是最好的取决于你的思索,不管是在改良功能,代码优化,大概优化UI大概其他方面。
在削减代码量方面,这两个库都很好,我的意义是你可使用任何一个库来削减样例代码。
在功能方面,Jackson供应了较好的功能,而且剖析速率快,某团体已做过了JSON剖析器的对照,找找看!
<br>
但愿你喜好这一期的”做一个怠惰高效的Android程序员”,在这里我们切磋了JSON剖析类库和利用恣意一个的优点,但愿你会利用个中的某一个,并匡助你进步临盆力。
鄙人部分之前,享用剖析历程吧!
(P.S.我团体历来没有在任何项目中利用过Jackson,但将在今后的某个时分研讨它,写一篇关于它的文章并供应大概的代码。)
最近一直都在学习有关ios(苹果系统)的知识,而学习ios的最好方法就是研究iPhone和ipad。因为iPhone和iPad的应用程序都是用Objective-C语言来开发的,所以在接触ios之前,我必须有一定的Objective-C基础。 |
|