JSON-JavaScript对象表示法

一、什么是JSON 

Json的全称是:JavaScript Object Notation。JS对象简谱,是一种轻量级的数据交换格式。

        Json最初时候也是以存储对象而生的,以存储对象为主
        Json现在基本上也是用于存储对象和交换数据,进行数据之间互相的传输

JavaScript对象表示法:

java对象:
        Student student = new Student();
        student.setName("张三");
        student.setAge(20);
        student.setSex("男");

输出结果为:
        Student{name='张三', age=20, sex='男'}
json:    
        var student = {"name":"张三", "age":20, "sex":"男"};

二、JSON语法 

    1.基本规则
        1.json的数据都是由键和值构成的,多个键值之间要用逗号分割
            键要使用引号引起来,单双引号都可以,也可以不用引号(尽量统一)
            值是根据数据类型来定:
                数字(整数或浮点数)不用使用引号
                字符串(使用双引号括起来)
                逻辑值(true或者false)不用使用引号
                数组(在方括号中){"student":[{属性1},{属性2},{属性3}]}
                对象(在花括号中){"address":{"sheng":"河南省","江苏省"}}
                null 不常用
            总结:花括号是保存json对象的,方括号是保存json数组的
        2.使用{}定义json格式的
    2.获取数据
        1.json对象.键名
        2.json对象["键名"]
        3.数组对象[索引]

三、Json数据跟Java对象互相转换 

1.创建Student实体类。

2.加入jackson相关的依赖:
<dependency>
  <groupId>com.fasterxml.jackson</groupId>
  <artifactId>jackson-datatype-json-org</artifactId>
  <version>1.8.0</version>
</dependency>

3.
    (1).Java对象转为Json
        1.创建Java对象
        2.创建Jackson的核心对象(ObjectMapper)
        3.调用ObjectMapper的相关方法进行转换,writeValueAsString()
    (2).Json转为Java对象
        1.初始化Json字符串
        2.创建Jackson的核心对象(ObjectMapper)
        3.调用ObjectMapper的相关方法进行转换,readValue()

json语法: 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
    /*1.基本格式*/
    var student={"name":"张三","age":20,"sex":true};
    alert(student)
    var name=student.name;
    alert(name)
    /*2.嵌套格式{}-->[]*/
    var student2={
    "student2":[
    {"name":"张三","age":20,"sex":true},
    {"name":"李四","age":26,"sex":false},
    {"name":"王五","age":28,"sex":true}
    ]
    };
    alert(student2)
    var age=student2.student2[2].age;
    alert(age);
    //3.数组格式[]-->{}
    var student3=[{"name":"张三","age":20,"sex":true},
    {"name":"李四","age":26,"sex":false},
    {"name":"王五","age":28,"sex":true}
    ];
    alert(student3)
    var sex=student3[1].sex;
    alert(sex)
</script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
    /*1.基本格式*/
    var student={"name":"张三","age":20,"sex":true};
    //使用for in循环获取student对象中的键和值
    for(var key in student)
    {
        alert(key+":"+student[key])
    }

    //3.数组格式[]-->{}
    var student3=[{"name":"张三","age":20,"sex":true},
        {"name":"李四","age":26,"sex":false},
        {"name":"王五","age":28,"sex":true}
    ];
    //获取student3中所有的键和值
    //使用for获取数组的长度,数组中每个对象
    for (let i = 0; i < student3.length; i++) {
        var student3Element=student3[i];
        alert(student3Element)
         //使用for in循环获取student3对象(student3Element)中每个对象所有的键和值
        for(var key in student3Element)
        {
            alert(key+":"+student3Element[key])
        }
    }
</script>
</body>
</html>

Json数据跟Java对象互相转换 :(写在service层)

package com.hsd.entity;

public class Student {
    private String name;
    private int age;
    private String sex;

    public Student() {
    }

    public Student(String name, int age, String sex) {
        this.name = name;
        this.age = age;
        this.sex = 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 "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                '}';
    }
}

 Java对象转为Json:

package com.hsd.service;

import com.hsd.entity.Student;
import org.codehaus.jackson.map.ObjectMapper;

import java.io.File;
import java.io.IOException;

public class Test01 {
    public static void main(String[] args) throws IOException {
        //将java对象转换为json字符串
        //1.创建student对象
        Student student=new Student();
        student.setName("张三");
        student.setAge(20);
        student.setSex("男");
        System.out.println(student);
        System.out.println("--------------------------------------");
        //2.创建jackson核心对象ObjectMapper
        /*ObjectMapper常用的方法:
               writeValueAsString:将对象转换为字符串
               writeValue:将对象转换为字符串并写入到D:\\a.txt文件中
        */

        ObjectMapper objectMapper = new ObjectMapper();
        //3.调用ObjectMapper的相关方法进行转换
        String string = objectMapper.writeValueAsString(student);
        System.out.println(string);//{"name":"张三","sex":"男","age":20}
        objectMapper.writeValue(new File("D:\\a.txt"),student);

    }
}

 结果:

 

 

 Json转为Java对象

package com.hsd.service;

import com.hsd.entity.Student;
import org.codehaus.jackson.map.ObjectMapper;

import java.io.IOException;

public class Test02 {
    public static void main(String[] args) throws IOException {
        //json字符串转换为java字符串
        //1.初始化json字符串
        String string="{\"name\":\"张三\",\"age\":20,\"sex\":\"男\"}";
        System.out.println(string);
        System.out.println("------------------------------------");
        //2.创建ObjectMapper对象
        ObjectMapper objectMapper = new ObjectMapper();
        //3.转换
        Student student = objectMapper.readValue(string, Student.class);
        System.out.println(student);

    }
}

结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值