当前位置:   article > 正文

JSON---JavaScript对象表示法_javascript json

javascript json

目录

1. 概念:

2. JSON的作用

3. 语法

3.1 基本规则

3.2 示例

3.3 获取数据

格式

示例

4. JSON和Java对象的相互转换

4.1 常见JSON解析器

4.2 JSON转为Java对象

4.3 Java对象转换为JSON

使用步骤


1. 概念:

JSON:JavaScript Object Notation        JavaScript对象表示法;

在Java中我们可以封装信息如:

  1. Person p=new Person();
  2. p.setName("张三");
  3. p.setAge(19);
  4. p.setGender("男");

那么在JavaScript中怎样存储这样零散的数据呢?

var p={"name":"张三","age":23,"gender":"男"}

2. JSON的作用

1)多用于存储和交换文本信息的语法;

2)进行数据的传输;

3)JSON相比于XML更小、更快、更易解析;

3. 语法

3.1 基本规则

1)数据在名称/值对中:json数据是由键值对构成的,键用引号(单双都行)引起来,也可以不使用引号;

2)值得取值类型:

        数字(整数或浮点数)

        字符串(在双引号中)

        逻辑值(true或false)

        数组(在方括号中)

        对象(在花括号中)

3)数据由逗号分隔:多个键值对由逗号分隔;

4)花括号保存对象:使用{}定义json格式;

5)方括号保存数组;

3.2 示例

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>JSON</title>
  8. <script>
  9. //1. 基本格式
  10. var person={"name":"张三","age":23,"gender":"男"};
  11. //2. 嵌套格式
  12. //2.1 {}嵌套[]
  13. var person2={
  14. "persons":[
  15. {"name":"小明","age":18,"gender":"男"},
  16. {"name":"张三","age":20,"gender":"男"},
  17. {"name":"小红","age":21,"gender":"女"}
  18. ]
  19. };
  20. //2.2 []嵌套{}
  21. var person3=[
  22. {"name":"小明","age":18,"gender":"男"},
  23. {"name":"张三","age":20,"gender":"男"},
  24. {"name":"小红","age":21,"gender":"女"}
  25. ];
  26. </script>
  27. </head>
  28. <body>
  29. </body>
  30. </html>

3.3 获取数据

格式

  1. 1. json对象.键名
  2. 2. json对象["键名"]
  3. 3. 数组对象[索引]

示例

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>JSON</title>
  8. <script>
  9. //1. 基本格式
  10. var person={"name":"张三","age":23,"gender":"男"};
  11. //2. 嵌套格式
  12. //2.1 {}嵌套[]
  13. var person2={
  14. "persons":[
  15. {"name":"小明","age":18,"gender":"男"},
  16. {"name":"张三","age":20,"gender":"男"},
  17. {"name":"小红","age":21,"gender":"女"}
  18. ]
  19. };
  20. //2.2 []嵌套{}
  21. var person3=[
  22. {"name":"小1","age":18,"gender":"男"},
  23. {"name":"张2","age":20,"gender":"男"},
  24. {"name":"小6","age":21,"gender":"女"}
  25. ];
  26. //3. 获取数据
  27. //3.1 获取张三
  28. alert(person.name);//也可通过alert(person[name]);获取
  29. //3.2 获取小红
  30. alert(person2.persons[2].name);
  31. //3.3 获取小6
  32. alert(person3[2].name);
  33. //3.4 获取person对象的所有键和值
  34. for(var key in person){
  35. //不能用person.key的方式获取,person.key相当于person."name";
  36. console.log(key+":"+person[key]);
  37. }
  38. //3.5 获取person3中的所有数据
  39. for(var i=0;i<person3.length;i++){
  40. var p=person3[i];
  41. for(var k in p){
  42. console.log(k+":"+p[k]);
  43. }
  44. }
  45. </script>
  46. </head>
  47. <body>
  48. </body>
  49. </html>

 

 

 

4. JSON和Java对象的相互转换

4.1 常见JSON解析

1)Jsonlib(官方)

2)Gson(谷歌)

3)fastjson(阿里巴巴)

4)jackson(SpringMVC内置解析器)

4.2 JSON转为Java对象

1)导入jackson的相关jar包;

jacksonjar包下载地址:https://mvnrepository.com/search?q=jackson

2)创建Jackson核心对象        ObjectMapper;

3)调用ObjectMapper的相关方法进行转换;

        readValue(json字符串数据,Class)

  1. public class JacksonTest {
  2. @Test
  3. public void test() throws JsonProcessingException {
  4. //1. 初始化json字符串
  5. String json="{\"name\":\"小李\",\"age\":28,\"gender\":\"男\"}";
  6. //2. 创建ObjectMapper对象
  7. ObjectMapper objectMapper = new ObjectMapper();
  8. //3. 转换为Java对象 Person对象
  9. Person person = objectMapper.readValue(json, Person.class);
  10. System.out.println(person);
  11. }
  12. }

 

4.3 Java对象转换为JSON

使用步骤

1)导入jackson的相关jar包;

jacksonjar包下载地址:https://mvnrepository.com/search?q=jackson

2)创建Jackson核心对象        ObjectMapper;

3)调用ObjectMapper的相关方法进行转换;

  1. public class JacksonTest {
  2. @Test
  3. public void test1() throws IOException {
  4. //1. 创建Person对象
  5. Person person = new Person();
  6. person.setName("小李");
  7. person.setAge(28);
  8. person.setGender("男");
  9. //2. 创建Jackson核心对象 ObjectMapper
  10. ObjectMapper objectMapper = new ObjectMapper();
  11. //3. 转换
  12. /*
  13. 转换方法
  14. writeValue(参数1,obj)
  15. 参数1:
  16. File:将obj对象转换为JSON字符串,并保存到指定的文件中
  17. Writer:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
  18. OutputStream
  19. writeValueAsString(obj):将对象转为json字符串
  20. */
  21. String s = objectMapper.writeValueAsString(person);
  22. System.out.println(s);
  23. objectMapper.writeValue(new File("D://random.txt"),person);
  24. }
  25. }

 

注:复杂java对象转换

List:数组

Map:与对象一致

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/585187
推荐阅读
相关标签
  

闽ICP备14008679号