JSON:定义JavaScript对象表示法(JavaScript Object Notation),独立于语言和平台,更容易解析。
Android平台自带了JSON了JSON解析相关的API,可以将文件,输入流中的数据对象转化为JSON对象,然后从对象中获取JSON保存的数据内容
Android的JSON部分都在包org.json下,主要包括一下几个类:
JSONObject:
JSON数据的提供方式:
服务器端传过来的jsonString ,
assets文件下放置的.json类型的文本数据,
try {
InputStreamReader isr = new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream("assets/" + "student.json"),"utf-8");
//从assets获取json文件
BufferedReader bfr = new BufferedReader(isr);
String line;
StringBuilder stringBuilder = new StringBuilder();
while ((line = bfr.readLine())!=null){
stringBuilder.append(line);
}//将JSON数据转化为字符串
System.out.println(stringBuilder.toString());
System.out.println(tes.tostring());
} catch (IOException e) {
e.printStackTrace();
}
JSONObject json = new JSONObject(jsonString);
json.getJSONArray("key")
json.getJSONObject("key")
json.getInt("key")
json.getString("key")
数据生成方式:
JSON json1 = new JSON();
json1.put("translation","车");
JSON json2 = new JSON();
json2.put("phonetic","ka");
String[] a =["n. 汽车;车厢","n. (Car)人名;(土)贾尔;(法、西)卡尔;(塞)察尔"] ;
json2.put("explains",a);
json1.put("basic",json2);
JSONArray json3 = new JSONArray();
json4.put
json5.put
json6.put
json3.add(json4)
json3.add(json5)
json3.add(json6)
json1.put("web",json3)
JSON数据详解:
{"translation":["车"],
"basic":
{
"phonetic":"kɑː",
"explains":["n. 汽车;车厢","n. (Car)人名;(土)贾尔;(法、西)卡尔;(塞)察尔"]},
"query":"car",
"errorCode":0,
"web":[{"value":["汽车","车子","小汽车"],"key":"Car"},
{"value":["概念车","概念车","概念汽车"],"key":"concept car"},
{"value":["碰碰车","碰撞用汽车","碰碰汽车"],"key":"bumper car"}]
}
这个JSONObject包括
一个普通的String数组"translation"
一个JSONObject "basic", 在这个"basic"Object中又包含了 一个普通的string "phonetic",一个普通的String数组"explains"
一个普通的String "query"
一个普通的String "errorCode"
一个JSONArray "web",在这个"web"里又包含了三个JSONObject , 每个JSONObject中又包含一个String数组,一个普通的String
{
GSON 基于事件驱动的解析json数据格式
String jsonString = GSON.toJson(src);
Object = GSON.fromJson(jsonString,type)
type = new TypeToken<Type>(){}.getType
Android平台自带了JSON了JSON解析相关的API,可以将文件,输入流中的数据对象转化为JSON对象,然后从对象中获取JSON保存的数据内容
Android的JSON部分都在包org.json下,主要包括一下几个类:
JSONObject:
JSON数据的提供方式:
服务器端传过来的jsonString ,
assets文件下放置的.json类型的文本数据,
try {
InputStreamReader isr = new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream("assets/" + "student.json"),"utf-8");
//从assets获取json文件
BufferedReader bfr = new BufferedReader(isr);
String line;
StringBuilder stringBuilder = new StringBuilder();
while ((line = bfr.readLine())!=null){
stringBuilder.append(line);
}//将JSON数据转化为字符串
System.out.println(stringBuilder.toString());
System.out.println(tes.tostring());
} catch (IOException e) {
e.printStackTrace();
}
JSONObject json = new JSONObject(jsonString);
json.getJSONArray("key")
json.getJSONObject("key")
json.getInt("key")
json.getString("key")
数据生成方式:
JSON json1 = new JSON();
json1.put("translation","车");
JSON json2 = new JSON();
json2.put("phonetic","ka");
String[] a =["n. 汽车;车厢","n. (Car)人名;(土)贾尔;(法、西)卡尔;(塞)察尔"] ;
json2.put("explains",a);
json1.put("basic",json2);
JSONArray json3 = new JSONArray();
json4.put
json5.put
json6.put
json3.add(json4)
json3.add(json5)
json3.add(json6)
json1.put("web",json3)
JSON数据详解:
{"translation":["车"],
"basic":
{
"phonetic":"kɑː",
"explains":["n. 汽车;车厢","n. (Car)人名;(土)贾尔;(法、西)卡尔;(塞)察尔"]},
"query":"car",
"errorCode":0,
"web":[{"value":["汽车","车子","小汽车"],"key":"Car"},
{"value":["概念车","概念车","概念汽车"],"key":"concept car"},
{"value":["碰碰车","碰撞用汽车","碰碰汽车"],"key":"bumper car"}]
}
这个JSONObject包括
一个普通的String数组"translation"
一个JSONObject "basic", 在这个"basic"Object中又包含了 一个普通的string "phonetic",一个普通的String数组"explains"
一个普通的String "query"
一个普通的String "errorCode"
一个JSONArray "web",在这个"web"里又包含了三个JSONObject , 每个JSONObject中又包含一个String数组,一个普通的String
{
GSON 基于事件驱动的解析json数据格式
String jsonString = GSON.toJson(src);
Object = GSON.fromJson(jsonString,type)
type = new TypeToken<Type>(){}.getType