JSON简介
JSON数据结构一种与开发语言无关的、轻量级的数据存储格式,全称JavaScript Object
Notation,一种数据格式的标准规范,起初来源于JavaScript这门语言,后来随着使用的广泛,几乎每门开发语言都有处理JSON的API 。
优点:易于人的阅读和编写,易于程序解析与生产,它相比xml格式的数据结构,占用的数据控件更小。
JSON解析
JSON 对象解析
JSON数据结构表示对象一般用大括号{},大括号里面是一种Key-Value的存储形式 ,如下
{"key1":value,"key2":value,"key3":value,...}
- key 一般是一个字符串
- value 可以是字符串,数字,boolean,null
{
"age": 30,
"name": "张三",
"isstudent": true
}
Java解析Json需先引入JSON解析包,可先自行百度下载JSON解析包并导入工程
Java解析JSON方法如下:
try {
JSONObject jsonObject = new JSONObject(s);
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
System.out.println("name="+name +" age=" + age);
} catch (JSONException e) {
e.printStackTrace();
}
JSON 数组解析
JSON数据结构表示数组一般用中括号[],里面全部是value,value之间用逗号给开
[value,value,...]
- value 可以是字符串,数字,boolean,null
[ "张三", "李四", "王五" ]
Java解析JSON方法如下:
JSONArray jsonObject = new JSONArray(result);
for (int i = 0 ; i < jsonObject.length() ; i ++){
String s = (String) jsonObject.get(i);
System.out.println( "s :" + s);
}
JSON对象嵌套解析
在前面介绍的JSON数据结构表示对象一般用大括号{},大括号里面是一种Key-Value的存储形式
{"key1":value,"key2":value,"key3":value,...}
- value的值除了可以是字符串,数字,boolean,null之外,也可以是一个JSON对象
{
"age": 20,
"name": "张三",
"isstudent": true,
"class": {
"grade": "18级",
"classname": "计算机专业"
}
}
Java解析方法如下:
try {
JSONObject json = new JSONObject(jsonString);
JSONObject jsonObject = json.getJSONObject("class");
String classname = jsonObject.getString("classname");
String grade = jsonObject.getString("grade");
System.out.println("classname:"+ classname +" grade:" + grade);
} catch (Exception e) {
e.printStackTrace();
}
JSON对象嵌套数组解析
在前面介绍的JSON数据结构表示对象一般用大括号{},大括号里面是一种Key-Value的存储形式
{"key1":value,"key2":value,"key3":value,...}
- value也可以是一个JSON数组
{
"grade": "18级",
"classname": "计算机专业",
"students": ["张三", "李四", "王五"]
}
对于这种数据结构Java解析方法
JSONObject jsonObject = new JSONObject(result);
String grade = jsonObject.getString("grade");
System.out.println("grade" + grade);
JSONArray jsonArray = jsonObject.getJSONArray("students");
for (int i = 0; i < jsonArray.length(); i++) {
String s = (String) jsonArray.get(i);
System.out.println("s:" + s);
}
总结:JSON的key对应的value 可以是整型、字符型、布尔型、null、JSON数组、JSON对象
JSON对象嵌套JSON数组对象解析
JSON数据结构可以灵活多样,JSON对象和JSON数据可以相互嵌套
{
"grade": "18级",
"classname": "计算机专业",
"students": [{
"id": "001",
"age": 30,
"name": "张三",
"isstudent": false
}, {
"id": "002",
"age": 25,
"name": "李四",
"isstudent": true
}, {
"id": "003",
"age": 26,
"name": "王五",
"isstudent": true
}]
}
Java解析JSON方法
JSONObject jsonObject = new JSONObject(result);
String grade = jsonObject.getString("grade");
System.out.println("grade" + grade);
JSONArray jsonArray = jsonObject.getJSONArray("students");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject1 = (JSONObject) jsonArray.get(i);
String name1 = jsonObject1.getString("name");
int age = jsonObject1.getInt("age");
System.out.println("name1:" + name1);
System.out.println("age:" + age);
}