柏竹 柏竹
首页
后端
前端
  • 应用推荐
关于
友链
  • 分类
  • 标签
  • 归档

柏竹

奋斗柏竹
首页
后端
前端
  • 应用推荐
关于
友链
  • 分类
  • 标签
  • 归档
  • Java基础

  • JavaWeb

    • Tomcat
    • JavaWeb Servlet
    • JSP
    • 过滤监听器
    • 会话跟踪
    • MVC设计模式
    • Ajax
    • JSON
      • JSON 访问
      • JSON与Java对象的转换
        • java-->json
        • json-->java
        • java集合-->json数组
        • json数组-->java集合
    • JspSmartUpload应用
  • 拓展技术

  • 框架技术

  • 数据库

  • 数据结构

  • Spring

  • SpringMVC

  • SpringBoot

  • SpringClound

  • Ruoyi-Vue-Plus

  • 后端
  • JavaWeb
柏竹
2020-02-18
目录

JSON

# JSON

JSON 语法是 JavaScript 对象表示语法的子集

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组
var 变量名 = {
	"key" : value , // Number类型
	"key2" : "value" , // 字符串类型
	"key3" : [] , // 数组类型
	"key4" : {}, // json 对象类型
	"key5" : [{},{}] // json 数组
};

JSON 值

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 布尔值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

# JSON 访问

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>

    <script type="text/javascript">

        //json访问
        var json1 = {name:"张三",age:12};
        document.write("name: "+json1.name+"<br/>");
        document.write("age: "+json1.age+"<br/><br/>");

        //json数组访问
        var json2 = {names:["张三","李四","王五"]};
        document.write("name(0): "+json2.names[0]+"<br/>");
        document.write("name(1): "+json2.names[1]+"<br/>");
        document.write("name(2): "+json2.names[2]+"<br/><br/>");

        //json嵌套访问
        var json3 = {names:[{"name":"张三","age":18},{"name":"李四","age":19},{"name":"王五","age":"20"}]};
        document.write(json3.names[0].name+"<br/>");
        document.write(json3.names[2].name+"  ");
        document.write(json3.names[2].age+"<br/>");

    </script>

<body>
    
</body>
</html>

# JSON与Java对象的转换

json与java对象转换的前提需要

jar依赖包 点击下载 (opens new window)

实体类:

MyUser 属性: name、age 方法: get、set、构造(全参、无参)、toString

# java-->json

MyUser user = new MyUser("张三" , 18);
JSONObject jsonObject = JSONObject.fromObject(user);
System.out.println("json: " + jsonObject);

/*
json: {"age":18,"name":"张三"}
*/

# json-->java

String str = "{'age':19,'name':'李四'}";
JSONObject json = JSONObject.fromObject(str);
MyUser user2 = (MyUser) JSONObject.toBean(json, MyUser.class);
System.out.println("user2 : " + user2);

/*
user2 : user{name='李四', age=19}
*/

# java集合-->json数组

List list = new ArrayList();
list.add(new MyUser("张三" , 18));
list.add(new MyUser("李四" , 19));
list.add(new MyUser("王五" , 20));
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println("jsonArray : " + jsonArray);

/*
jsonArray : [{"age":18,"name":"张三"},{"age":19,"name":"李四"},{"age":20,"name":"王五"}]
*/

# json数组-->java集合

方法1

String str2 = "[{'age':11,'name':'张三'},{'age':22,'name':'李四'},{'age':33,'name':'王五'}]";
JSONArray jsonArray2 = JSONArray.fromObject(str2);
Object[] objects = (Object[]) JSONArray.toArray(jsonArray2,MyUser.class);
System.out.println("遍历java集合=========1");
for (Object object : objects) {
    System.out.println(object);
}

/*
遍历java集合=========1
user{name='张三', age=11}
user{name='李四', age=22}
user{name='王五', age=33}
*/

方法2

String str3 = "[{'age':111,'name':'张三'},{'age':222,'name':'李四'},{'age':333,'name':'王五'}]";
JSONArray jsonArray3 = JSONArray.fromObject(str3);
List<MyUser> list2 = (List<MyUser>) JSONArray.toCollection(jsonArray3,MyUser.class);
System.out.println("遍历java集合=========2");
for (MyUser tmp : list2) {
    System.out.println(tmp);
}

/*
遍历java集合=========2
user{name='张三', age=111}
user{name='李四', age=222}
user{name='王五', age=333}
*/
#JSON
上次更新: 2023/03/12, 00:43:49

← Ajax JspSmartUpload应用→

最近更新
01
HTTPS自动续签
10-21
02
博客搭建-简化版(脚本)
10-20
03
ruoyi-vue-plus-部署篇
07-13
更多文章>
Theme by Vdoing | Copyright © 2019-2024 | 桂ICP备2022009417号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式