`
megocdy
  • 浏览: 25831 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSON

    博客分类:
  • java
 
阅读更多


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 方法更快、内存受限更小 — 但是以增加复杂性为代价。


 

分享到:
评论

相关推荐

    json paser 属于idea插件 用于解析json

    json paser 属于idea插件 用于解析json json paser 属于idea插件 用于解析json json paser 属于idea插件 用于解析json json paser 属于idea插件 用于解析json json paser 属于idea插件 用于解析json json paser 属于...

    Linux JSON 命令总结.zip_json linux_shell解析json

    在Linux环境中,处理JSON数据是常见的任务,尤其是在服务器管理和自动化脚本中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本文将深入探讨如何...

    最好用的c++json库 nlohmann json源代码

    最好用的c++json库 nlohmann json源代码最好用的c++json库 nlohmann json源代码最好用的c++json库 nlohmann json源代码最好用的c++json库 nlohmann json源代码最好用的c++json库 nlohmann json源代码最好用的c++json...

    JSON_Trans.rar_LABVIEW转换JSON_json Labview_labivew json_labview j

    标题“JSON_Trans.rar_LABVIEW转换JSON_json Labview_labivew json_labview j”表明这是一个关于如何在LabVIEW中实现JSON转换的实践教程或示例。 描述中提到,“LabVIEW建立JSON通讯示例,通过建立簇,将数据转换成...

    MFC使用json11解析JSON

    json11::Json jsonObject = json11::Json::parse(jsonString); if (jsonObject.is_object()) { // 处理解析成功的对象 } else { // 处理解析错误 } ``` 一旦你有了JSON对象,可以访问其成员或进行修改。例如,...

    json3.js 【JS / JavaScript 中解析JSON的js包,JSON官方的JSON解析包】

    json3.js 【JS / JavaScript 中解析JSON的js包,JSON官方的JSON解析包】。JavaScript中解析JSON的js包,页面中引入json3.js,即可使用。 使用方法:JSON.parse(str), JSON.stringify(obj) 更多详情请参考博文: ...

    java json api,json api

    Java JSON API是Java平台上的库,提供了处理JSON的能力,包括解析JSON字符串、生成JSON对象以及进行JSON与Java对象之间的转换。 在Java中,有多种实现JSON API的库,如Jackson、Gson、org.json和json-lib等。本篇...

    json转换jsonschema

    而JSON Schema则是一个JSON格式的规范,用于定义JSON数据的结构和限制,类似于XML Schema,它为JSON数据提供了验证规则,确保数据的准确性和一致性。 在JavaScript开发中,有时我们需要将JSON对象转换为JSON Schema...

    json-c 一个用于c语言的json解析库,很强大

    在这个例子中,我们首先使用`json_tokener_parse`解析JSON字符串,然后通过`json_object_get_string`和`json_object_get_int`获取JSON对象中的数据,最后使用`json_object_put`释放内存。这就是`json-c`库基本的使用...

    JSON net.sf.json jar包

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。它易于人阅读和编写,同时也易于机器解析和生成。`net.sf.json`是开源项目Apache软件基金会下的一个...

    json net.sf.json

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传输数据。它以文本形式存储和传递数据,易于人阅读和编写,同时也易于机器解析和生成。`net.sf.json`是开源Java库,它...

    json数据展示插件,jsonview.js

    jsonview是chrome浏览器的一个插件,用来在浏览器中查看json数据。比如你在浏览器中可以查看从服务器端传回来的json数据,这些数据可能没有经过格式化的,也或者是经过了unicode编码,没有缩进,没有换行等等,造成...

    C# json格式解析,Json格式字符串与C#对象相互转换,类库+使用案例,注释详细

    C# json格式转换,Json格式字符串与C#对象相互转换,类库和测试demo 写了一个json与C#对象相互装换的类库,直接调用就行,有测试案例,代码注释非常详细 部分方法: /// 将Json字符串解析为C#中的对象 /// Json格式...

    JAVA-JSON工具转换类

    可能包含的方法有`toJson()`(将Java对象转换为JSON字符串)、`fromJson()`(将JSON字符串解析为Java对象)、`convertToMap()`(将JSON字符串转换为Map)以及`convertToList()`(将JSON字符串转换为List)等。...

    json for PHP4.0

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在PHP中,JSON常用于与前端交互,传输数据。PHP 4.0版本虽然相对较旧,但仍然可以处理JSON数据,只是...

    JSON文件查看器,用于json文件的查看

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛应用于Web服务与客户端之间的数据传输。它易于人阅读和编写,同时也易于机器解析和生成。JSON文件通常以.js或.json为扩展名,其数据结构主要...

    json2.js 字符串转转json对象工具

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,但也使用了类似于C家族语言(包括C、C++、C#、Java、JavaScript、Perl、Python等)的习惯,这使得JSON对于程序员...

    经典ASP读取JSON字符串/生成JSON对象,数组对象等。

    这篇关于“经典ASP读取JSON字符串/生成JSON对象,数组对象等”的知识将详细介绍如何在ASP环境中处理JSON数据。 1. **JSON对象与数组的结构**: JSON对象以大括号{}表示,键值对之间用逗号分隔。键必须是字符串,用...

    JsonSQL:用SQL语句解析JSON文件

    **JsonSQL: SQL语句解析JSON文件** 在大数据处理和Web应用中,JSON(JavaScript Object Notation)格式已经成为数据交换的常见格式。然而,对于习惯使用SQL查询关系型数据库的人来说,处理JSON数据可能会觉得不太...

    PB解析json,解析JSON案例,解析jsondemo

    标题中的“PB解析json,解析JSON案例,解析jsondemo”表明了本文主要关注的是PowerBuilder(简称PB)如何处理JSON数据。在现代软件开发中,JSON(JavaScript Object Notation)是一种广泛使用的轻量级数据交换格式,...

Global site tag (gtag.js) - Google Analytics