JSON(JavaScript Object Notation) :一种轻量级的数据交换格式,基于JavaScript的一个子集。 JSON采用完全独立于语言的文本格式,使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(网络传输速度快)。作为一种数据交换格式,JSON优势很明显(相对与我们通常使用的XML):JSON比XML体积小;JSON和JavaScript交互更加方便;JSON的速度要远远大于XML;JSON的解析要比XML的解析要方便等。

JSON语法规则:

  • 数据在名称/值(键值)对中
  • 数据由逗号(,)分隔
  • 花括号{}保存对象
  • 方(中)括号[]保存数组                                                                                                                                                                                    JSON 数据的书写格式是:名称/值对。名称主要是用加“”的字符串表示,值可以是多种格式,包括
  • 数字(整数或浮点数)
  • 字符串(在双引号("")中)
  • 逻辑值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

下面是一个JSON格式的数示例:

{  
"tel" : ["12345678", "87654321"], // 数组形式,以方括号保存  
"name" : "tianjiefeng", // 字符串  
"age" : 20, // 数值  
"address" : { "country" : "china", "province" : "guangdong" }, // JSON对象,以花括号保存  
"graduate" : true // 布尔值  
}

那个Android开发中JSON格式的数据如何创建?又如何解析呢?首先举如何创建下面这个JSON的例子:

private JSONObject createJSONData() {  
        // 最外层是花括号{},所以就是一个JSONObject对象  
        JSONObject student = new JSONObject();  
        try {  
            // 第1个value是[ ],也就是一个JSONArray对象  
            JSONArray tel= new JSONArray();  
            phone.put("12345678");  
            phone.put("87654321");  
            person.put("tel", tel);  
            // 第2个value一个字符串  
            person.put("name", "tianjiefeng");  
            // 第3个value一个字符串数值  
            person.put("age", 20);  
            // 第4个value一个JSONObject对象  
            JSONObject address = new JSONObject();  
            address.put("country", "china");  
            address.put("province", "guangdong");  
            person.put("address", address);  
            // 第5个value一个布尔值  
            person.put("graduate", true);  
        } catch (JSONException e) {  
            e.printStackTrace();  
        }  
        return student ;  
    }

如果要返回String字符串,只需要修改为return student.toString();下面看下如何把上面的JSON数据解析出来:

private Map<String, Object> parseJSONData(String json) {  
        Map<String, Object> resultMap = new HashMap<String, Object>();  
        try {  
            // 直接把JSON字符串转化为一个JSONObject对象  
            JSONObject student= new JSONObject(json);  
            // 第1个键值对  
            resultMap.put("tel", person.getJSONArray("tel").toString());  
            // 第2个键值对  
            resultMap.put("name", person.getString("name"));  
            // 第3个键值对  
            resultMap.put("age", person.getInt("age"));  
            // 第4个键值对  
            resultMap.put("address", person.getJSONObject("address").toString());  
            // 第5个键值对  
            resultMap.put("graduate", person.getBoolean("married"));  
        } catch (JSONException e) {  
            e.printStackTrace();  
        }  
        return resultMap;  
    }  
} 上面就是用我们用JSONObject 及JSONArray进行数据操作。但在实际开发中,我们一般都会使用Gson解析JSON数据 
首先,从 code.google.com/p/google-gson/downloads/list下载GsonAPI和相关jar包,然后通过GJSON封装的方法来处理数据。 Gson的解析非常简单,但是它的解析规则是必须有一个bean文件,这个bean文件的内容跟JSon数据类型是一一对应。Gson有两个重要的方法,一个就是tojson(tojson就是将bean里面的内容转换为json内容),一个就是fromjson(从我们的Json对象封装出一个一个的bean对象)。其简单的例子可以参考:http://blog.csdn.net/kongzhichen/article/details/10135051

补充知识:上面例子可以不看,看下面这个链接里面的讲的比较详细

http://www.open-open.com/lib/view/open1326376799874.html

http://www.open-open.com/doc/view/dcaf018b28a44ed188e84a07cfff080d

android中Json的一些应用的更多相关文章

  1. Android中Json数据读取与创建

    一:  Json的特性和在数据交互中的地位就不用说了,直接看案例. 首先在android studio中创建assets文件目录,用于存放Json数据文件,android studio 1.3 默认项 ...

  2. Android中JSON数据格式的简单使用

    源码: package com.wangzhu.demo; import java.io.BufferedReader; import java.io.IOException; import java ...

  3. Android中Json数据读取与创建的方法

    转自:http://www.jb51.net/article/70875.htm 首先介绍下JSON的定义,JSON是JavaScript Object Notation的缩写. 一种轻量级的数据交换 ...

  4. Android 中Json解析的几种框架(Gson、Jackson、FastJson、LoganSquare)使用与对比

    介绍 移动互联网产品与服务器端通信的数据格式,如果没有特殊的需求的话,一般选择使用JSON格式,Android系统也原生的提供了JSON解析的API,但是它的速度很慢,而且没有提供简介方便的接口来提高 ...

  5. android中Json数据保存方式

    package com.example.savejsonproject; import java.io.File; import java.io.FileNotFoundException; impo ...

  6. Android中XML文件的序列化生成与解析

    xml文件是非常常用的,在android中json和xml是非常常用的两种封装数据的形式,从服务器中获取数据也经常是这两种形式的,所以学会生成和解析xml和json是非常有用的,json相对来说是比较 ...

  7. Android学习记录(1)—Android中XML文件的序列化生成与解析

    xml文件是非常常用的,在android中json和xml是非常常用的两种封装数据的形式,从服务器中获取数据也经常是这两种形式的,所以学会生成和解析xml和json是非常有用的,json相对来说是比较 ...

  8. Android 中的Json解析工具fastjson 、序列化、反序列化

    Android中通常需要访问服务器,然而服务器返回的数据很多时候都是Json格式 1.fastjson简介 阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备 ...

  9. Android中使用Gson解析JSON数据的两种方法

    Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下   Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...

随机推荐

  1. CentOS 安装 Wine

    1. 下载安装包 Wine的中文官网可以下载到最新稳定和开发版本的Wine安装包,根据不同需求可以自行下载 2. 解压安装包,编译前检查 根据不同的平台选择不同的编译选项: For 32-Bit Sy ...

  2. eclipse控台不见

  3. Entity Framework关联查询以及数据加载(延迟加载,预加载)

    数据加载分为延迟加载和预加载 EF的关联实体加载有三种方式:Lazy Loading,Eager Loading,Explicit Loading,其中Lazy Loading和Explicit Lo ...

  4. 2016年中国大学生程序设计竞赛(合肥)-重现赛1008 HDU 5968

    异或密码 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submis ...

  5. HDU 4857 逃生 (反向拓扑排序 & 容器实现)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4857 逃生 Time Limit: 2000/1000 MS (Java/Others)    Mem ...

  6. CCI4.5/LintCode Validate Binary Search Tree

    Validate BST是指按中序遍历niorder后左<node<右: 第一种方法: 先按inoreder遍历, 再放进ArrayList里用循环看是不是从小到大排序: 注意: 设置成员 ...

  7. Hammer.js--转载自李林峰的园子

    一.前言 移动端框架当前还处在初级阶段,但相对于移动端的应用来说已经有很长时间了.虽然暂时还没有PC端开发的需求量大,但移动端的Web必然是一种趋势,在接触移动端脚本的过程中,最开始想到的是juqer ...

  8. hiho一下21周 线段树的区间修改 离散化

    离散化 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho在回国之后,重新过起了朝7晚5的学生生活,当然了,他们还是在一直学习着各种算法~ 这天小Hi和小Ho ...

  9. 前端学习 第三弹: JavaScript语言的特性与发展

    前端学习 第三弹: JavaScript语言的特性与发展 javascript的缺点 1.没有命名空间,没有多文件的规范,同名函数相互覆盖 导致js的模块化很差 2.标准库很小 3.null和unde ...

  10. 移动端 touch 事件的originalEvent

    对于移动端的触摸事件,我们通过touchstart.touchmove.touchend实现,PC端一般使用mousedown.mousemove.mouseup实现. 我们获取事件坐标,原生js获取 ...