Android简单的JSON解析(一)
来源:互联网 发布:番茄钟软件 编辑:程序博客网 时间:2024/05/27 01:28
什么是JSON?
这是来自百度百科的扯淡:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(网络传输速度快).
Json有两种数据格式.
一种是以(Key/Value)键值对应的形式的无序jsonObject对象,一个对象是以"{"为开始,“}”为结束,每个"key"后跟一个":"(冒号) key/value之间用","(逗号)分隔,例如:
{"name":"myu",“addrs”:"beijing"},这就是一个简单的json对象,这种数据格式中的Key必须是string类型,value可以是string,array,number,object等类型.
第二种数据格式是有序的value集合,这种形式被称为jsonArray,里面的数组就是value的有序集合.一个数组以"["开始 "]"结束,值与值之间用","分隔.例如:
[1234,5678]
事实上,Json,XML,Html这三种数据格式一般为服务器返回的格式.就Json和XML而言:
相同点:1、两者的数据可读性基本相同
2、两者拥有同样丰富的解析手段
异同点:1、json的数据体积更小
2、json与JS的交互更加方便
3、json的解析速度更快
4、xml对数据的描述性更好
5、轻/重量级方面的区别:JSON只提供了整体解析方案,而这种方法只在解析较少的数据时才能起到良好效果;
而XML提供了对大规模数据的逐步解析方案,这种方案很适用于对大量数据的处理。对于应用程序而言,只
要整体数据可以一次性读取和写入的,都只能算是轻量级应用
Android中JSON几个常用的类:(来自Android官方文档API19)
JSONArray A dense indexed sequence of values.
JSONObject A modifiable set of name/value mappings.
JSONStringer Implements toString() and toString().
JSONTokener Parses a JSON (RFC 4627) encoded string into the corresponding object.
每个类具体的作用及其中的方法大家可以先参考Google提供的文档,这里我们有时间再去详细分析
以下是自己写的一个小Demo,作用是解析一个简单的Json格式,并将其数据转化成基本类型:
package com.example.myjsondemo;import org.json.JSONArray;import org.json.JSONObject;import org.json.JSONTokener;import android.os.Bundle;import android.util.Log;import android.app.Activity;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);String json = "{" + " \"query\": \"Pizza\", "+ " \"locations\": [ 94043, 90210 ] " + "}";try {// 通过JSONTokener的nextValue()获得JSONObject对象JSONObject object = (JSONObject) new JSONTokener(json).nextValue();// 获取"query"键对应的value值String query = object.getString("query");Log.v("json", "-->query =" + query);// 返回索引对应的value值JSONArray locations = object.getJSONArray("locations");for (int i = 0; i < locations.length(); i++) {// 遍历JSONArray,取出Value值int id = locations.getInt(i);Log.v("json", "-->id =" + id);}} catch (Exception e) {// TODO: handle exceptionLog.v("json", "-->Exception Exception");}}}
- Android简单的JSON解析(一)
- Android简单的JSON解析(二)
- Android的json解析方式(一)
- Android-Json简单解析与生成实例(一)
- Android之简单的JSON解析和XML解析简介
- Json的解析<一>
- json数据解析<一> JSONObject和JSONArray的简单使用
- Qt简单的解析Json数据例子(一)
- android json 解析 简单示例
- android json 解析简单实例
- Android json解析简单示例
- 【json】android json解析及简单例子
- android Json数据解析(一)
- Android中最简单的解析Json的方法
- Android 一个简单的json格式的封装与解析
- Android 解析后台返回为Json数据的简单例子!!!
- Android 解析后台返回为Json数据的简单例子!!!
- Android 解析后台返回为Json数据的简单例子!!!
- oracle,mysql,SqlServer三种数据库的分页查询的实例
- 黑马程序员 —— 关于Writer类的write(int c) 方法
- swift(4)
- UML笔记3--用例图
- 在IOS8下 baidumap 初始化时没有 定位授权 提示
- Android简单的JSON解析(一)
- MVC中通用JS判断表单或者某个具体的文本框验证是否通过
- 开始学习Android
- 解决ActiveMQ中,Java与C++交互中文乱码问题
- 2015牛股直播2-2(周一)
- 黑马程序员 —— BufferedReader的readLine()方法
- Mockplus使用技巧:怎样使用Mockplus的历史项目加强文档安全?
- log4j的NDC和MDC
- 黑马程序员 —— BufferedOutputStream的flush()方法