• JSON概念、基础语法及数据和对象转换


    目录

    一、JSON概念

    二、JSON基础语法

    三、JSON数据和Java对象转换


    一、JSON概念

    概念:JavaScript Object Notation。JavaScript对象表示法

    由于其语法简单,层次结构鲜明,现多用于作为数据载体

    二、JSON基础语法

    定义:

    var 变量名 = {"key1";value1

                           "key2";value2

                           ......

                           };

    示例:

    var json = {"name";"zhangsan",

                         "age";23,

                          "addr";["北京","上海","西安"]

                           };

    获取数据:

    变量名.key

    json.name

    value的数据类型为:

    数字(整数或浮点数)

    字符串(在双引号中)

    逻辑值(true或false)

    数组(在方括号中)

    对象(在花括号中)

    null

    代码示例:

    1. <script>
    2. var json = {
    3. "name": "zhangsan",
    4. "age": 23,
    5. "addr": ["北京", "上海", "西安"]
    6. };
    7. //获取值
    8. alert(json.name);
    9. </script>

    浏览器弹出:

     三、JSON数据和Java对象转换

    请求数据:JSON字符串转为Java对象

    响应数据:Java对象转为JSON字符串

    Fastjson是阿里巴巴提供的一个Java语言编写的高性能功能完善的JSON库,是目前Java语言中最快的JSON库,可以实现Java对象和JSON字符串的相互转换。

    使用:

    1、导入坐标

    1. <dependency>
    2. <groupId>com.alibaba</groupId>
    3. <artifactId>fastjson</artifactId>
    4. <version>1.2.62</version>
    5. </dependency>

    2、Java对象转JSON

    String jsonStr = JSON.toJSONString(obj);

    3、JSON字符串转为Java对象

    User user = JSON.parseObject(jsonStr,User.class);

    代码示例:

    User代码:

    1. public class User {
    2. private Integer id;
    3. private String username;
    4. private String password;
    5. public Integer getId() {
    6. return id;
    7. }
    8. public void setId(Integer id) {
    9. this.id = id;
    10. }
    11. public String getUsername() {
    12. return username;
    13. }
    14. public void setUsername(String username) {
    15. this.username = username;
    16. }
    17. public String getPassword() {
    18. return password;
    19. }
    20. public void setPassword(String password) {
    21. this.password = password;
    22. }
    23. @Override
    24. public String toString() {
    25. return "User{" +
    26. "id=" + id +
    27. ", username='" + username + '\'' +
    28. ", password='" + password + '\'' +
    29. '}';
    30. }
    31. }

     FastJsonDemo代码:

    1. import com.alibaba.fastjson.JSON;
    2. public class FastJsonDemo {
    3. public static void main(String[] args) {
    4. //1.将java对象转为JSON字符串
    5. User user = new User();
    6. user.setId(1);
    7. user.setUsername("zhangsan");
    8. user.setPassword("123");
    9. String jsonString = JSON.toJSONString(user);
    10. System.out.println(jsonString);
    11. //2.将JSON字符串转为java对象
    12. User u = JSON.parseObject("{\"id\":1,\"password\":\"123\",\"username\":\"zhangsan\"}", User.class);
    13. System.out.println(u);
    14. }
    15. }

    控制台执行结果:

  • 相关阅读:
    Dubbo之启动时检查(check属性)。
    Dubbo高手之路6,Dubbo 服务治理详解
    SpringBoot【2022年最新面试题】
    尚硅谷–MySQL–基础篇(P1~P95)
    c++: 引用能否替代指针? 详解引用与指针的区别.
    力扣刷题记录167.1-----1356. 根据数字二进制下 1 的数目排序
    Vue通过ref修改 <el-input-number> 增减按钮的样式
    目标检测 Faster RCNN全面解读复现
    基于web在线餐饮网站的设计与实现——仿Coco线上订奶茶饮料6个页面(HTML+CSS+JavaScript)
    matlab习题 —— 图像绘制练习
  • 原文地址:https://blog.csdn.net/m0_61961937/article/details/125036385