- 浏览: 26268 次
- 性别:
- 来自: 北京
-
最新评论
http://www.apkbus.com/forum.php?mod=viewthread&tid=13882
Android 平台上处理 Internet 上两种最常见的数据格式 — XML 和JSON,Feed 数据可以以 XML 和 JSON 格式从 Twitter 上获取 ,XML 随处可见,但是对于 Android 程序员来说并不是一个明智的选择,特别是,如果数据结构成为与 XML 结构伴随着的数据爆炸的牺牲品。像 Android 这样通常在蜂窝数据网络(cellular data network)上工作的资源受限平台不能存储和解析大量 XML 数据。然而,如果特殊编程任务要求文本和二进制数据交换,那么 XML 是一个可靠的选择。
越来越多的 Internet API 供应商提供 JSON 作为一种数据格式。JSON 在 Ajax 网页编程社区中享有盛名。Ajax 技术使 web 页面可以动态地更新,只更新所选区域的数据而不用更新整个页面。由于较少数据被传送 — 更重要的是,因为较少的数据被解析且显示在浏览器窗口 — 使用 AJAX 的应用程序比起传统 web 应用程序能够提供一个更好的用户体验。
XML 以其冗长而著名,而 JSON 也因其难度而闻名。JSON 对象其构造是一个键 :值 对,对象元素之间用逗号隔开,每个对象被包含在一对大括号 {} 内。一组对象数组包含在一对方括号中。这是将数据行从一个数据库发送到一个对象数组的一种常见方法。其中每个数组元素对应数据库中的一行,每个对象属性代表数据的一列。
总的来说,JSON 是:
- 一种数据交换格式。
- JavaScript 对象作为字符串编码的一种方式。
- 仅限于文本和数值。二进制值是明确不允许的。JSON 没有 CDATA 对应模式。
- 在数据可读性费用方面、就数据大小而言比 XML 更经济。
- 越来越多的 API 供应商将其作为一种选择,例如 Twitter。
-
void examineJSONFile() { try { String x = ""; InputStream is = this.getResources().openRawResource(R.raw.jsontwitter); byte [] buffer = new byte[is.available()]; while (is.read(buffer) != -1); String jsontext = new String(buffer); JSONArray entries = new JSONArray(jsontext); x = "JSON parsed.\nThere are [" + entries.length() + "]\n\n"; int i; for (i=0;i<entries.length();i++) { JSONObject post = entries.getJSONObject(i); x += "------------\n"; x += "Date:" + post.getString("created_at") + "\n"; x += "Post:" + post.getString("text") + "\n\n"; } tvData.setText(x); } catch (Exception je) { tvData.setText("Error w/file: " + je.getMessage()); } }
像之前显示的 XML 例程一样,从文件中读取数据到内存中,转换成一个 java.lang.String,然后解析成 JSONArray。要注意的是,正如此例所示,一个特殊的字符串能直接解析成一个数组,或者也可以直接解析成一个 JSONObject。因为 Twitter 数据是一个对象数组,整体解析成一个数组然后按顺序逐个访问对象是明智的选择。
该方法的流程简单明了,一旦数据被解析,代码建立一个类似于 XML 解析器处理程序方法的字符串表示。有趣的是数据将由您来管理;您不需要建立额外内存结构来容纳数据,同样地,应用程序预先就知道在 JSONArray 中有多少个条目(在这个例子中是 20 个)。
尽管 JSON 解析在编程上简单得多,但并不是没有代价的。它要增加内存消耗,在处理之前整体读取数据流并进行存储。相反的,SAX XML 方法仅使用相关数据。另外,如果解析特殊 JSON 对象的内存是足够的,则这个方法将很受应用程序欢迎,特别是,几乎不需要使用 DOM 的应用程序。
比起 JSON 方法,XML 方法更快、内存受限更小 — 但是以增加复杂性为代价。
发表评论
-
Android网络请求库——android-async-http
2013-05-14 16:58 0在iOS开发中有大名鼎鼎的ASIHttpRequest库, ... -
缓存管理
2013-02-27 17:04 801无论大型或小型应用 ... -
MediaProvider数据库模式:ICS的更改
2012-10-23 17:51 2703Android MediaProvider数据 ... -
我国首次IT审计师资格考试成绩不俗(11.4)
2012-09-06 22:42 6【时间:2003年01月23日】 【来源: ... -
ftp理论
2012-09-05 22:13 884当数据通过数据流传 ... -
ftp实务
2012-09-05 22:10 663当你对一个FTP问题进行排错时候,你首先要问的 ... -
aassssss
2012-08-20 21:23 008-20 21:22:40.890: INFO/Sys ... -
error
2012-07-04 21:11 0doInBackground ee4:bind fail ... -
sockt
2012-07-04 00:28 767这是一个简单的包含发送端和接收端的例子。发送端向接收端发 ... -
Android AsyncTask
2012-07-03 23:00 675在开发Android移动客户端的时候往往要使用多线程来进 ... -
log
2012-06-30 19:53 006-30 19:31:20.510: DEBUG/CDY(1 ... -
Wi-Fi Direct
2012-06-30 00:28 870http://stackoverflow.com/questi ... -
Wi-Fi Direct 10大问答
2012-06-13 00:09 1666Q:什么是Wi-Fi Direct?A:是新兴的Wi-Fi无线 ... -
Wi-Fi Direct ,让 DLNA 如虎添翼
2012-06-13 00:07 1096今天想分享的技术趋势话题,涉及两个关键字,WI-FI D ... -
Wi-Fi Direct变成标准
2012-06-13 00:04 1109三星宣布Galaxy S将能过升级的方式,成位第一款支持Wi- ... -
Wi-Fi Direct百科
2012-06-12 23:56 950Wi-Fi Direct简介 2010 ... -
Wi-Fi Direct与蓝牙4.0优缺点比较
2012-06-12 18:10 5489Wi-Fi Direct与蓝牙4.0速度比较 Wi-Fi ... -
Android 下使用 JSON 实现 HTTP 请求,外加几个示例!
2012-02-16 00:00 2471不得不说,JSON 格式的确是非常美妙的,速度快而且简化 ... -
android Camera
2011-11-25 16:57 848/** * 拍照的回调接口 ... -
ftp协议的工作原理
2011-08-17 00:36 752FTP Transfer Protocol 件传输协议的缩写, ...
相关推荐
json paser 属于idea插件 用于解析json json paser 属于idea插件 用于解析json json paser 属于idea插件 用于解析json json paser 属于idea插件 用于解析json json paser 属于idea插件 用于解析json json paser 属于...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。JSON-C是JSON的一个C语言实现,它提供了一个简单的API,使得在C语言中处理JSON数据变得方便。JSON-C库...
最好用的c++json库 nlohmann json源代码最好用的c++json库 nlohmann json源代码最好用的c++json库 nlohmann json源代码最好用的c++json库 nlohmann json源代码最好用的c++json库 nlohmann json源代码最好用的c++json...
采用pb11.5 + pbni + vs2015 + rapidjson的开源库,生成解析json,支持datawindow快速导入导出字段名有大写字母的json,支持dw导入出json时对指定字段进行des加密,并在导入到dw时时进行des解密,修改了pbvm115.dll...
json11::Json jsonObject = json11::Json::parse(jsonString); if (jsonObject.is_object()) { // 处理解析成功的对象 } else { // 处理解析错误 } ``` 一旦你有了JSON对象,可以访问其成员或进行修改。例如,...
json3.js 【JS / JavaScript 中解析JSON的js包,JSON官方的JSON解析包】。JavaScript中解析JSON的js包,页面中引入json3.js,即可使用。 使用方法:JSON.parse(str), JSON.stringify(obj) 更多详情请参考博文: ...
Java JSON API是Java平台上的库,提供了处理JSON的能力,包括解析JSON字符串、生成JSON对象以及进行JSON与Java对象之间的转换。 在Java中,有多种实现JSON API的库,如Jackson、Gson、org.json和json-lib等。本篇...
`json.js`可能是早期的一个JSON处理库,它提供了JSON的解析(`parse()`)和字符串化(`stringify()`)功能,使得在不支持JSON的旧版浏览器中也能进行JSON操作。`json2.js`是 Douglas Crockford 创建的,他是JSON规范...
而JSON Schema则是一个JSON格式的规范,用于定义JSON数据的结构和限制,类似于XML Schema,它为JSON数据提供了验证规则,确保数据的准确性和一致性。 在JavaScript开发中,有时我们需要将JSON对象转换为JSON Schema...
在这个例子中,我们首先使用`json_tokener_parse`解析JSON字符串,然后通过`json_object_get_string`和`json_object_get_int`获取JSON对象中的数据,最后使用`json_object_put`释放内存。这就是`json-c`库基本的使用...
System.Json.dll 是一个.NET框架下的库,主要用于处理JSON(JavaScript Object Notation)数据。JSON是一种轻量级的数据交换格式,广泛应用于Web服务和应用程序之间的数据传输。System.Json.dll 提供了一个便于操作...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。它易于人阅读和编写,同时也易于机器解析和生成。`net.sf.json`是开源项目Apache软件基金会下的一个...
标题中的"ZUI2_JSON2_/UI2/CL_JSON_ui2/cl_json_abap_Ui2_cl_json_zui2_json_源"可能指的是一个与ZUI2相关的项目,它利用了ABAP类/UI2/CL_JSON来解析和生成JSON数据。描述中提到,我们需要用到这个类来将JSON格式的...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传输数据。它以文本形式存储和传递数据,易于人阅读和编写,同时也易于机器解析和生成。`net.sf.json`是开源Java库,它...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。它基于JavaScript的一个子集,具有易读易写的特点,同时也易于机器解析和生成。JSON格式通常由键值对组成,键...
jsonview是chrome浏览器的一个插件,用来在浏览器中查看json数据。比如你在浏览器中可以查看从服务器端传回来的json数据,这些数据可能没有经过格式化的,也或者是经过了unicode编码,没有缩进,没有换行等等,造成...
本话题聚焦于“古诗内容提取json格式转jsonl”,这涉及到从JSON格式的数据中提取古诗内容,并将其转换为JSONL(JSON Lines)格式。下面我们将深入探讨这两个格式以及转换过程中的关键知识点。 首先,JSON...
C# json格式转换,Json格式字符串与C#对象相互转换,类库和测试demo 写了一个json与C#对象相互装换的类库,直接调用就行,有测试案例,代码注释非常详细 部分方法: /// 将Json字符串解析为C#中的对象 /// Json格式...
可能包含的方法有`toJson()`(将Java对象转换为JSON字符串)、`fromJson()`(将JSON字符串解析为Java对象)、`convertToMap()`(将JSON字符串转换为Map)以及`convertToList()`(将JSON字符串转换为List)等。...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在PHP中,JSON常用于与前端交互,传输数据。PHP 4.0版本虽然相对较旧,但仍然可以处理JSON数据,只是...