一、JSON对象结构

JSON对象就像一张表格,用大括号 {} 包裹,里面是“键值对”:
{
    "name": "小明",
    "age": 18,
    "isStudent": true
}
特点:
  1. 用大括号 {} 包裹。
  2. 键值对用冒号 : 分隔。
  3. 键值对之间用逗号 , 分隔。
  4. 键必须是字符串(用双引号包裹)。
  5. 值可以是:
  • 字符串(用双引号)
  • 数字(不用引号)
  • 布尔值(true/false)
  • 对象(嵌套的 {})
  • 数组([])
  • null

二、JSON数组结构

JSON数组就像一列数据,用中括号 [] 包裹:
[
    "苹果",
    "香蕉",
    "橙子"
]

特点:
  1. 用中括号 [] 包裹。
  2. 元素之间用逗号 , 分隔。
  3. 数组中的元素可以是:
  • 字符串
  • 数字
  • 布尔值
  • 对象
  • 数组
  • 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": "湿度"
}

六、注意事项

  1. JSON的键名要和Java类的字段名完全一致。
  2. 数组在Java中用List表示。
  3. 嵌套的对象需要创建对应的类。
  4. 注意数据类型要匹配(字符串、数字、布尔值等)。
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐