首页 > 其他分享 >JSON前后端传输数据

JSON前后端传输数据

时间:2024-08-12 22:58:43浏览次数:15  
标签:name person age 前后 dog 传输数据 JSON public

一.简介

JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。它基于ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率 简单来说,JSON 就是一种字符串格式,这种格式无论是在前端还是在后端,都可以很容易的转换成对象,所以常用于前后端数据传递

前端和后端的对象是不能直接传输的,所以都转为JSON字符串传输

1.前端需要将前端对象转化为JSON串,将JSON串转化为前端对象

2.后端需要将后端对象转化为JSON串,将JSON串转化为后端对象

二.前端对象和JSON的相互转换 

1.JSON的语法

​ var obj="{'属性名':'属性值','属性名':{'属性名':'属性值'},'属性名':['值1','值1','值3']}"

2. 对象和JSON的相互转换方法

  • 通过JSON.parse()方法可以将一个JSON串转换成对象

  • 通过JSON.stringify()方法可以将一个对象转换成一个JSON格式的字符串

3.示例代码

JSON转对象 

/* 定义一个JSON串 */
var personStr ='{"name":"张小明","age":20,"girlFriend":{"name":"铁铃","age":23},"foods":["苹果","香蕉","橘子","葡萄"],"pets":[{"petName":"大黄","petType":"dog"},{"petName":"小花","petType":"cat"}]}'
console.log(personStr)
console.log(typeof personStr)
/* 将一个JSON串转换为对象 */
var person =JSON.parse(personStr);
console.log(person)
console.log(typeof person)
/* 获取对象属性值 */
console.log(person.name)
console.log(person.age)
console.log(person.girlFriend.name)
console.log(person.foods[1])
console.log(person.pets[1].petName)
console.log(person.pets[1].petType)

对象转JSON 

/* 定义一个对象 */
var person={
    'name':'张小明',
    'age':20,
    'girlFriend':{
        'name':'铁铃',
        'age':23
    },
    'foods':['苹果','香蕉','橘子','葡萄'],
    'pets':[
        {
            'petName':'大黄',
            'petType':'dog'
        },
        {
            'petName':'小花',
            'petType':'cat'
        }
    ]
}

/* 获取对象属性值 */
console.log(person.name)
console.log(person.age)
console.log(person.girlFriend.name)
console.log(person.foods[1])
console.log(person.pets[1].petName)
console.log(person.pets[1].petType)
/* 将对象转换成JSON字符串 */
var personStr =JSON.stringify(person)
console.log(personStr)
console.log(typeof personStr)

三.后端对象和JSON的相互转换 

1.导入jar包

在maven项目pom文件写入下面3个依赖

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.17.1</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.17.1</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.17.1</version>
</dependency>

2.创建需要的传输数据对象

注意:要传输的类的定义一定要实现类的getter和setter方法不然就会报错.我们直接创建一个标准的javabean就可以了

例子

Dog类

public class Dog {
    private String name;
    private int age;


    public Dog() {
    }

    public Dog(String name, int age) {
        this.name = name;
        this.age = age;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

    public String toString() {
        return "Dog{name = " + name + ", age = " + age + "}";
    }
}

Person类 

public class Person {
    private String name;
    private int age;
    private Dog dog;


    public Person() {
    }

    public Person(String name, int age, Dog dog) {
        this.name = name;
        this.age = age;
        this.dog = dog;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

    /**
     * 获取
     * @return dog
     */
    public Dog getDog() {
        return dog;
    }

    /**
     * 设置
     * @param dog
     */
    public void setDog(Dog dog) {
        this.dog = dog;
    }

    public String toString() {
        return "Person{name = " + name + ", age = " + age + ", dog = " + dog + "}";
    }
}

3.对象转JSON

public void Object2Json() throws JsonProcessingException {
        Dog dog = new Dog("小七", 2);
        Person person = new Person("张三", 18, dog);
        ObjectMapper objectMapper = new ObjectMapper();
        String jsonStr = objectMapper.writeValueAsString(person);
        System.out.println(jsonStr);
        //{"name":"张三","age":18,"dog":{"name":"小七","age":2}}
    }

4.JSON转对象

public void Json2Object() throws JsonProcessingException {
        String jsonStr = "{\"name\":\"张三\",\"age\":18,\"dog\":{\"name\":\"小七\",\"age\":2}}";
        ObjectMapper objectMapper = new ObjectMapper();
        Person person = objectMapper.readValue(jsonStr, Person.class);
        System.out.println(person);
        //Person{name = 张三, age = 18, dog = Dog{name = 小七, age = 2}}
}

5.map转JSON

public void map2Json() throws JsonProcessingException {
        Map<String, Object> map = new HashMap<>();
        map.put("name", "张三");
        map.put("age", 18);
        map.put("dog", new Dog("小七", 2));
        map.put("小王",new Person("小王", 18, new Dog("小七", 2)));
        String mapStr = new ObjectMapper().writeValueAsString(map);
        System.out.println(mapStr);
        //{"小王":{"name":"小王","age":18,"dog":{"name":"小七","age":2}},"name":"张三","dog":{"name":"小七","age":2},"age":18}
}

6.list和array转JSON 

public void listArray2Json() throws JsonProcessingException {
        ArrayList<String> list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        String listStr = new ObjectMapper().writeValueAsString(list);
        System.out.println(listStr);//["张三","李四"]
        Person[] person = new Person[2];
        person[0] = new Person("张三", 18, new Dog("小七", 2));
        person[1] = new Person("李四", 18, new Dog("小七", 2));
        String arrayStr = new ObjectMapper().writeValueAsString(person);
        System.out.println(arrayStr);
        //[{"name":"张三","age":18,"dog":{"name":"小七","age":2}},{"name":"李四","age":18,"dog":{"name":"小七","age":2}}]
}

标签:name,person,age,前后,dog,传输数据,JSON,public
From: https://blog.csdn.net/2202_75483664/article/details/141138614

相关文章

  • SSM机场网上订票系统00rk3 前后台联动
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:用户,机票信息,订票信息,机场广告开题报告内容一、课题背景与意义随着航空业的快速发展,传统的机场订票方式已无法满足旅客对高效、便捷服务的需求。机......
  • Shell处理Json数据
    在Shell中处理复杂的JSON数据,一般有以下三种方式:jq:jq是一款强大的JSON处理工具,支持过滤、修改、重组和生成JSON数据。Python:使用Python来处理复杂的JSON数据。结合了Shell脚本的便利性和Python处理JSON的强大能力grep/sed/awk:在无其他工具的情况下使用grep/sed/awk等(不......
  • 深入解析@JsonValue注解在Java序列化中的应用
    深入解析@JsonValue注解在Java序列化中的应用在Java开发中,对象序列化是一个常见的需求,尤其是在进行网络通信或者数据持久化时。Jackson库作为Java领域内一个非常流行的JSON处理库,提供了强大的序列化和反序列化功能。在Jackson2.9版本之后,@JsonValue注解的引入,为开发者提供......
  • 基于Java的考试信息报名系统 SpringBoot考试报名管理系统 Vue前后端分离【Java毕业设
    ⛄博主介绍:⚡全栈开发工程师,精通Web前后端技术、数据库、架构设计。专注于Java技术领域和小程序领域的开发,毕业设计、课程设计项目中主要包括定制化开发、源代码、代码讲解、文档报告辅导、安装调试等。✅文末获取联系✅目录1项目介绍 2技术选型 3系统总体设计 4......
  • 计算机毕业设计 校园失物招领网站 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解
    ......
  • .NET 8.0 中使用 JWT(JSON Web Token)进行身份验证和授权
    在.NET8.0中使用JWT(JSONWebToken)进行身份验证和授权,通常需要以下几个步骤:安装必要的NuGet包:Microsoft.AspNetCore.Authentication.JwtBearer配置JWT认证:在Program.cs或Startup.cs中配置JWT认证。生成和验证JWT:创建一个方法来生成JWT。在控制器中使用JWT......
  • wechat crawler url拼接 url解析 微信爬虫 json序列化 反序列化
    WechatPublicRequest\Program.csusingSystem.Collections.Specialized;usingSystem.Diagnostics;usingSystem.Web;usingNewtonsoft.Json;classProgram{staticasyncTaskMain(){varlatestTxtFilePath=GetLatestTxtFilePath();......
  • 黑群晖NAS挂载到服务器中,直接传输数据
    原文链接:一串代码将黑群晖挂载到服务器中,直接传输数据本期教程获得往期教程DataandCode,请在后台回复:20240810。请大家看清楚回复关键词,每天都有很多人回复错误关键词,我这边没时间和精力一一回复。2022年教程总汇2023年教程总汇写在前面我们在使用NAS的时候,......
  • Spring AI 更新:支持OpenAI的结构化输出,增强对JSON响应的支持
    就在昨晚,SpringAI发了个比较重要的更新。由于最近OpenAI推出了结构化输出的功能,可确保AI生成的响应严格遵守预定义的JSON模式。此功能显着提高了人工智能生成内容在现实应用中的可靠性和可用性。SpringAI紧随其后,现在也可以对OpenAI的结构化输出完美支持了。下图展示了本......
  • CORS与JSONP漏洞原理及其复现
    文章目录CORS跨域共享介绍同源策略配置产生条件复现自动化爆破工具JSONP跨域回调介绍复现自动审查工具安装教程使用教程在现代Web开发中,跨域资源共享(CORS)和JSONP是两种重要的跨域通信技术。CORS通过设置HTTP头来控制资源共享,而JSONP则利用了本文将深入探讨......