JSON
json和xml的区别:
1.没有结束标签
2.更短
3.读写速度更快
4.使用数组
5.不使用保留字
Json的语法:
Json的语法是javascript对象表示法语法的子集:
1.数据在名称/值对中(这里也把它称为键值对)
2.数据由逗号分隔
3.花括号保存对象
4.方括号保存数组
Json的值可以是:
1.数字(整数或浮点数)
2.字符串(在双引号中)
3.逻辑值(true或false)
4.数组(在方括号中)
5.对象(在花括号中)
6.Null
![](https://img-blog.csdn.net/20150410184020845?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmxhY2t0b25l/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150410184120169?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmxhY2t0b25l/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
JSON数据的读取:
//把文件读到字符串中
InputStreamReader isr = new InputStreamReader(getAssets()
.open("test.json"), "UTF-8");
BufferedReader br=new BufferedReader(isr);
String line;
StringBuilder builder=new StringBuilder();
while((line=br.readLine())!=null){
builder.append(line);
}
br.close();
isr.close();
//用一个JSON对象盛放所有数据
JSONObject root=new JSONObject(builder.toString());
System.out.println("cat="+root.getString("cat"));
//用一个JSON数组盛放数组
JSONArray array=root.getJSONArray("languages");
for(int i=0;i<array.length();i++){
JSONObject lan=array.getJSONObject(i);
System.out.println("~~~~~~~~~~~~~~~~~~");
System.out.println("id="+lan.getInt("id"));
System.out.println("ide="+lan.getString("ide"));
System.out.println("name="+lan.getString("name"));
}
JSON数据的写入:
JSONObject root = new JSONObject();
root.put("cat", "it");
//创建JSON对象
JSONObject lan1=new JSONObject();
lan1.put("id", 1);
lan1.put("ide", "eclipse");
lan1.put("name", "java");
JSONObject lan2=new JSONObject();
lan2.put("id", 2);
lan2.put("ide", "xcode");
lan2.put("name", "swift");
//创建一个JSON数组盛放JSON对象
JSONArray array=new JSONArray();
array.put(lan1);
array.put(lan2);
//需要将array添加进根元素中
root.put("languages", array);
//输出JSON
System.out.println("+++++++++++++++++"+root.toString());