JSON学习详解 Bertha 。 2022-11-30 01:32 130阅读 0赞 学习目录 1、json概念 2、json语法 1、定义 2、值的获取 3、json解析器 -------------------- ### 1、json概念 ### 概念:**JavaScript Object Notation **JavaScript对象表示法 json现在多用于存储和交换文本信息的语法,进行数据的传输,**JSON 比 XML 更小、更快,更易解析**。 ### 2、json语法 ### ### 1、定义 ### ** 基本规则:** 1、数据在名称键值对中:json数据是由**键值对构成**的 **键用引号(单双都行)引起来,也可以不使用引号,在使用时,统一使用一种就可以。** **值的取值类型:** ** 1. 数字(整数或浮点数)** ** 2. 字符串(在双引号中)** ** 3. 逻辑值(true 或 false)** ** 4. 数组(在方括号中) ** \{"persons":\[\{\},\{\}\]\} ** 5. 对象(在花括号中)** \{"address":\{"province":"陕西"....\}\} ** 6. null** ** ** 2 、数据由逗号分隔:**多个键值对由逗号分隔** 3、括号保存对象:**使用\{\}定义json 格式** ** ** 4、方括号保存数组:\[ \] **代码演示:** <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> <script> var person = {"name":"ycy",age:22,'sex':"男",array:[1,2,3,4]}; alert(person); var perons = { "person":[ {name:"ycy",age:22,sex:"男"}, {name:"kk",age:22,sex:"女"}, {name:"jj",age:21,sex:"男"} ] }; </script> </head> <body> </body> </html> ![20200822163932301.png][] ### 2、值的获取 ### **1、json对象.键名** ** 2、json对象\["键名"\]** ** 3、数组对象\[索引值\]** 代码演示: <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> <script> //定义规则 var person = {"name":"ycy",age:22,'sex':"男",array:[1,2,3,4]}; var perons = { "person":[ {name:"ycy",age:22,sex:"男"}, {name:"kk",age:22,sex:"女"}, {name:"jj",age:21,sex:"男"} ] }; //值的获取 alert(person.age); alert(person["array"][0]); alert(person["sex"]); alert(perons.person[1].name); </script> </head> <body> </body> </html> ### 3、json解析器 ### **Java对象转换JSON** 1. 使用步骤: 1. 导入jackson的相关jar包 jackson-annotations-2.2.3.jar jackson-core-2.2.3.jar jackson-databind-2.2.3.jar 放在WEB-INF下的lib下 2. 创建Jackson核心对象 ObjectMapper ObjectMapper mapper = new ObjectMapper(); 3. 调用ObjectMapper的相关方法进行转换 ** 1. 转换方法** ** writeValue(参数1,obj):(了解)** ** 参数1:** ** File:**将obj对象转换为JSON字符串,并保存到指定的文件中 ** Writer:**将obj对象转换为JSON字符串,并将json数据填充到字符输出流中 ** OutputStream:**将obj对象转换为JSON字符串,并将json数据填充到字节输出流中 ** writeValueAsString(obj):将对象转为json字符串** ** String json = mapper.writeValueAsString(p);** ** 代码演示:** Java对象 package cn.com.Ycy.domain; /** * @Author YCY * @Date 2020/8/22 17:22 * @Version 1.0 */ public class person { private String name; private int age; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } @Override public String toString() { return "person{" + "name='" + name + '\'' + ", age=" + age + ", sex='" + sex + '\'' + '}'; } } 测试类: public class mytest { @Test public void Mytest() throws JsonProcessingException { person p = new person(); p.setAge(23); p.setName("张三"); p.setSex("男"); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(p); System.out.println(json); } } 输出的格式: \{"name":"张三","age":23,"sex":"男"\} **细节处理** ** 2、注解** ** 1. @JsonIgnore:排除属性。不对属性进行转为json** ** 2. @JsonFormat:属性值得格式化 在对应的属性的上或者是set方法上** ** 例如: @JsonFormat(pattern = "yyyy-MM-dd")** **代码演示:** public class person { private String name; private int age; private String sex; @JsonIgnore private Date birthday; //get/set方法 } 测试方法: @Test public void Mytest2() throws JsonProcessingException { person p = new person(); p.setAge(24); p.setName("李四"); p.setSex("男"); p.setBirthday(new Date()); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(p); System.out.println(json); } 输出结果: \{"name":"李四","age":24,"sex":"男"\} 案例演示2:**对某个属性转换格式特定化** public class person { private String name; private int age; private String sex; @JsonFormat(pattern = "yyyy-MM-dd") private Date birthday; //set/get方法 } 测试方法: @Test public void Mytest3() throws JsonProcessingException { person p = new person(); p.setAge(24); p.setName("老王"); p.setSex("男"); p.setBirthday(new Date()); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(p); System.out.println(json); } 输出结果 : \{"name":"老王","age":24,"sex":"男","birthday":"2020-08-22"\} **3、复杂java对象转换** ** 1、List:转出来是数组** ** 代码演示:** @Test public void Mytest4() throws JsonProcessingException { person p = new person(); p.setAge(21); p.setName("老王"); p.setSex("男"); p.setBirthday(new Date()); person p1 = new person(); p1.setAge(22); p1.setName("李思"); p1.setSex("女"); p1.setBirthday(new Date()); person p2 = new person(); p2.setAge(21); p2.setName("高维"); p2.setSex("男"); p2.setBirthday(new Date()); List<person> personArrayList = new ArrayList<>(); personArrayList.add(p); personArrayList.add(p1); personArrayList.add(p2); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(personArrayList); System.out.println(json); } **输出样式** \[\{"name":"老王","age":21,"sex":"男","birthday":"2020-08-22"\},\{"name":"李思","age":22,"sex":"女","birthday":"2020-08-22"\}, \{"name":"高维","age":21,"sex":"男","birthday":"2020-08-22"\}\] ** 2、Map:转换的样式是对象格式** @Test public void Mytest5() throws JsonProcessingException { Map<String,Object>map = new HashMap<>(); map.put("name","张三"); map.put("age",21); map.put("sex","男"); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(map); System.out.println(json); } **输出样式:** \{"sex":"男","name":"张三","age":21\} [20200822163932301.png]: /images/20221124/715a4d50203247ccb4d687b23149511a.png
相关 JSON详解 一、什么是 Json? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。在数据传输数据过程中,传递的只是一种符合Json语法 叁歲伎倆/ 2024年02月17日 17:40/ 0 赞/ 34 阅读
相关 JSON学习详解 学习目录 1、json概念 2、json语法 1、定义 2、值的获取 3、json解析器 -------------------- Bertha 。/ 2022年11月30日 01:32/ 0 赞/ 131 阅读
相关 JSON 学习 JSON 总结内容 一、JSON 的定义 二、格式 三、在 JavaScript 中的 JSON 1. 一时失言乱红尘/ 2022年10月09日 02:57/ 0 赞/ 156 阅读
相关 JSON学习 1.JSON 语法是 JavaScript 对象表示语法的子集。 l 数据在名称/值对中 l 数据由逗号分隔 l 花括号保存对 灰太狼/ 2022年06月17日 13:26/ 0 赞/ 172 阅读
相关 JSON 学习 JavaScript Object Notation,JS 对象标记,是一种轻量级的数据交换格式。 [JSON 标准][JSON] JSON 介绍 简介 JS ╰半夏微凉°/ 2022年05月22日 23:18/ 0 赞/ 206 阅读
相关 JSON学习 JSON学习 [JSON][]([JavaScript][] Object Notation,JS对象简谱)是一种轻量级的数据交换格式。它基于 [ECMAScript][ 你的名字/ 2022年05月14日 18:34/ 0 赞/ 672 阅读
相关 json学习 [JSON字符串解析][JSON] [json在前后端数据交互中的应用][json] [Ajax+Json应用和实现省市联动][Ajax_Json] [JSON]: Dear 丶/ 2022年05月03日 08:00/ 0 赞/ 549 阅读
相关 JSON学习 1.JSON 语法是 JavaScript 对象表示语法的子集。 l 数据在名称/值对中 l 数据由逗号分隔 l 花括号保存对象 l 方括号保存数组 水深无声/ 2022年02月12日 13:45/ 0 赞/ 208 阅读
相关 JSON学习 文章目录 JSON介绍 概念 JSON使用 语法 JSON介绍 > [JSON官网][JSON] 概念 JSON 雨点打透心脏的1/2处/ 2021年09月29日 01:10/ 0 赞/ 274 阅读
还没有评论,来说两句吧...