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