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数据嵌套1
在前面介绍的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数据嵌套2
在前面介绍的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数据嵌套3
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);
}