一、JSON对象结构
JSON对象就像一张表格,用大括号
{} 包裹,里面是“键值对”:
{
"name": "小明",
"age": 18,
"isStudent": true
}
特点:
- 用大括号 {} 包裹。
- 键值对用冒号 : 分隔。
- 键值对之间用逗号 , 分隔。
- 键必须是字符串(用双引号包裹)。
- 值可以是:
- 字符串(用双引号)
- 数字(不用引号)
- 布尔值(true/false)
- 对象(嵌套的 {})
- 数组([])
- null
二、JSON数组结构
JSON数组就像一列数据,用中括号
[] 包裹:
[
"苹果",
"香蕉",
"橙子"
]
特点:
- 用中括号 [] 包裹。
- 元素之间用逗号 , 分隔。
- 数组中的元素可以是:
- 字符串
- 数字
- 布尔值
- 对象
- 数组
- null
三、实际例子
五、实际项目中的例子
1. 简单对象 JSONJSON
{
"student": {
"name": "小明",
"age": 18,
"scores": [90, 85, 95]
}
}
2. 对象数组 JSONJSON
{
"class": {
"name": "三年级班",
"students": [
{
"name": "小明",
"age": 18
},
{
"name": "小红",
"age": 17
}
]
}
}
3. 复杂嵌套 JSONJSON
{
"school": {
"name": "实验中学",
"classes": [
{
"name": "三年级二班",
"students": [
{
"name": "小明",
"scores": {
"math": 90,
"english": 85
}
}
]
}
]
}
}
Java 中的对应关系
1. JSON对象 → Java类
// JSON
{
"name": "小明",
"age": 18
}
// Java类
public class Student {
String name;
int age;
}
2. JSON数组 → Java Listjava
// JSON
[
"苹果",
"香蕉",
"橙子"
]
// Java
List<String> fruits;
3. 对象数组 → List<类>java
// JSON
{
"students": [
{"name": "小明", "age": 18},
{"name": "小红", "age": 17}
]
}
// Java类
public class ClassInfo {
List<Student> students;
}
public class Student {
String name;
int age;
}
4. 实际项目中的例子JSON
{
"code": 200,
"data": [
{
"value": "60",
"name": "湿度"
},
{
"value": "true",
"name": "LED"
},
{
"value": "25",
"name": "温度"
}
],
"msg": "success"
}
对应的 Java 类:
public class JsonRootBean {
int code; // 对应 "code": 200
List<Data> data; // 对应 "data" 数组
String msg; // 对应 "msg": "success"
}
public class Data {
String value; // 对应 "value": "60"
String name; // 对应 "name": "湿度"
}
六、注意事项
- JSON的键名要和Java类的字段名完全一致。
- 数组在Java中用List表示。
- 嵌套的对象需要创建对应的类。
- 注意数据类型要匹配(字符串、数字、布尔值等)。