目录

1.关于json

2.实现方式

1.Gson

2.jackson

3.fastjson

3.与前端的联系


1.关于json

        JSON是一种轻量级的数据交换格式。它由Douglas Crockford在2001年创造。JSON的全称是JavaScript Object Notation,它是一种文本格式,可以轻松地在各种平台之间传递数据。JSON通常用于前端与后端之间的数据交互。在后端,我们可以使用许多语言来处理JSON格式的数据,包括Java、Python、PHP等。

2.实现方式

        实际操作中,将java对象转换为json字符串格式,大多是借助第三方库,这里介绍三种

1.Gson

相关依赖:

    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.10.1</version>
    </dependency>

java核心代码:

        Book book = new Book();

        book.setId(90);

        book.setName("Success of mindset");

        book.setPrice(88.8);


        // 核心部分
        Gson gson = new GsonBuilder().create();
        String json = gson.toJson(book);

        System.out.println(json);

        // 这里的book是我的一个对象实例

结果如下:

2.jackson

相关依赖:

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

java核心代码:

        Book book = new Book();

        book.setId(90);

        book.setName("Success of mindset");

        book.setPrice(88.8);

        //核心部分
        ObjectMapper objectMapper = new ObjectMapper();

        String json = objectMapper.writeValueAsString(book);//这里要抛出            JsonProcessingException的异常

        System.out.println(json);

结果如下:

3.fastjson

相关依赖:

    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.76</version>
    </dependency>

java核心代码:

        Book book = new Book();

        book.setId(90);

        book.setName("Success of mindset");

        book.setPrice(88.8);

        //核心部分
        String json = JSONArray.toJSONString(book);

        System.out.println(json);

结果如下:

3.与前端的联系

        在后端成功将所需传输对象转换为json字符串格式后,便可以此传递给前端,进而让浏览器去响应json数据

        例如在Servlet中,设置响应头content-type:

resp.setContentType("application/json");
resp.setCharacterEncoding("UTF-8");

        然后再向客户端发送 JSON 数据的代码,即将 JSON 数据写入到 PrintWriter 对象中,并将其发送到客户端。最终,客户端将收到 JSON 数据并进行相应的处理:

PrintWriter out = response.getWriter();
out.write(json);
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐