Android中操作JSON数据

        JSON数据已经成为了互联网中大多数数据的传递方式,本文首先介绍了JSON数据格式及其特点,而后实现了在Android中加载并解析JSON数据和在Android中生成JSON数据的操作。

详细代码:github.com/Baolvlv/LearnAndroid/tree/master/TestJSON

1.JSON数据格式简介

JSON:javaScript对象表示法,储存和交换文本信息的语法

特点:轻量级文本数据交换格式,独立与语言与平台,自我描述性易于理解

相比xml数据:更小更快更易解析。没有结束标签,更短,读写速度更快,使用数组,没有保留字。

语法:数据用键值对保存,数据由逗号分隔,花括号保存对象,方括号保存数组

JSON的值可以为:数字,字符串,逻辑值,数组,对象,null

2.读取JSON 格式数据

创建json格式数据,复制在assets目录下

通过getAssets().open()方法打开assets目录下的文件,结果为InputStream,指定编码方式后创建InputStreamReader,转为BufferedReader,使用BufferReader.readLine()方法读取文件为String,使用StringBuffer存整个文本文件。关闭输入流

InputStreamReader isr =newInputStreamReader(getAssets().open("test.json"),"UTF-8");

BufferedReader br =newBufferedReader(isr);

String line;

StringBuffer sb =newStringBuffer();

while((line = br.readLine())!=null){

sb.append(line);

}

br.close();

isr.close();

通过String类型的JSON文本,创建JSON对象

//创建JSONObject对象

JSONObject root =newJSONObject(sb.toString());

JSON对象可以通过getInt(),getString(),getJSONArray()获取相应的值

root.getString(“cat")

lan.getInt(“id”)

root.getJSONArray("language")

JSONArray可以通过getJSON(index),获取数组中索引位置的JSON对象

JSONObject lan = ja.getJSONObject(i);

所有关于JSON的读取都是通过键读取值

3.创建JSON格式数据

创建根JSON对象,创建JSON对象,为对象添加属性,将对象存入JSON数组,将数组作为根对象的属性值添加到属性,添加其他属性。将根对象转为字符穿输出。

//创建根对象

JSONObject root =newJSONObject();

JSONObject lan1 =newJSONObject();

//为对象添加属性

lan1.put("id",1);

lan1.put("ide","Eclipse");

lan1.put("name","java”);

//创建JSON数组

JSONArray ja =newJSONArray();

ja.put(lan1);

ja.put(lan2);

ja.put(lan3);

//将数组添加为根对象属性

root.put("language",ja);

//添加属性时,第二个参数为Object,String对象本身为为Object

root.put("cat","it”);

//将根对象转为String输出

Log.i("print",root.toString());

你可能感兴趣的:(Android中操作JSON数据)