1.什么是JSON?
json是存储和交换文本信息的语法,具有轻量级,容易解析且独立于语言和平台等优点。
2.JSON语法
2.1 JSON数据的格式:名称/值对
例如:“name”:“小强”
2.2 JSON对象:在花括号中书写,其中可以包括多个名称/值对
例如:{“name”:“Tom”,“age”:“20”}
2.3 JSON数组:在方括号中书写,可以包含多个对象,高亮处为一个对象,最外层大括号也是一个对象!
例如:{
“employees”: [{
“firstName”: “John”,
“lastName”: “Doe”
},
{
“firstName”: “Anna”,
“lastName”: “Smith”
},
{
“firstName”: “Peter”,
“lastName”: “Jones”
}
]
}
3.使用JSON
首先在web工程下面的lib目录下需要导入相关jar包
案例一:
1 public void jsonTest() {
2 //1.创建一个json格式的字符串
3 String jsonStr="{'姓名':'张三','年龄':'20','sex':'男'}";
4 //2.将字符串转为json对象
5 JSONObject json=JSONObject.fromObject(jsonStr);
6 //3.json对象转字符串
7 String str=json.toString();
8 //4.解析json对象,获取姓名
9 String name=(String) json.get("姓名");
}
首先一个大括号代表着一个JSON对象,里面可以包括多个名称/值对。因此,使用JSONObject.fromObject(jsonString);方法,将String类型的json字符串转为json对象。解析json的话,使用get(“名称”);方法即可。
案例二:
@Test
1 public void jsonShuZuTest2() {
2 String json="{'users':[{'姓名':'小强','年龄':'22','sex':'女'},"
+ "{'姓名':'小红','年龄':'18','sex':'男'},"
+ "{'姓名':'小明','年龄':'12','sex':'男'}]}";
//String json2="{'users':[{},{},{}]";
//2.将字符串转为json对象
3 JSONObject jsonObject=JSONObject.fromObject(json);
4 JSONArray jsonArray=jsonObject.getJSONArray("users");
5 for(int i=0;i<jsonArray.size();i++) {
6 JSONObject jsonArray1=jsonArray.getJSONObject(i);
7 String name=jsonArray1.getString("姓名");
8 String age=jsonArray1.getString("年龄");
9 String sex=jsonArray1.getString("sex");
10 System.out.println("2"+name+" "+age+" "+sex);
}
}
json数组的使用首先第2行是一个json数组,外面的大括号是一个json对象,格式:名称:[json对象1,json对象2,。。。]
第三行,先将一个json数组转为json对象
第四行,getJSONArray(“名称”),将json对象转为json数组
以上。