将java对象转换为json字符串的几种常用方法

目录

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);
  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JAVA数据转换JSON格式 示例代码: JSON字符串java对象的互json-lib】 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML、JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好,下面先看下JSON的格式, JSON可以有两种格式,一种是对象格式的,另一种是数组对象, {"name":"JSON","address":"北京市西城区","age":25}//JSON对象格式的字符串 [{"name":"JSON","address":"北京市西城区","age":25}]//数据对象格式 从上面的两种格式可以看出对象格式和数组对象格式唯一的不同则是在对象格式的基础上加上了[],再来看具体的结构,可以看出都是以键值对的形式出现的,中间以英文状态下的逗号(,)分隔。 在前端和后端进行数据传输的时候这种格式也是很受欢迎的,后端返回json格式的字符串,前台使用js中的JSON.parse()方法JSON字符串解析为json对象,然后进行遍历,供前端使用。 下面进入正题,介绍在JAVAJSONjava对象之间的互。 要想实现JSONjava对象之间的互,需要借助第三方jar包,这里使用json-lib这个jar包,下载地址为:https://sourceforge.net/projects/json-lib/,json-lib需要commons-beanutils-1.8.0.jar、commons-collections-3.2.1.jar、commons-lang-2.5.jar、commons-logging-1.1.1.jar、ezmorph-1.0.6.jar五个包的支持,可以自行从网上下载,这里不再贴出下载地址。 json-lib提供了几个类可以完成此功能,例,JSONObject、JSONArray。从类的名字上可以看出JSONObject化的应该是对象格式的,而JSONArray化的则应该是数组对象(即,带[]形式)的。 一、java普通对象json字符串的互 java对象--》》字符串 java普通对象指的是java中的一个java bean,即一个实体类,如, 复制代码 package com.cn.study.day3; public class Student { //姓名 private String name; //年龄 private String age; //住址 private String address; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "Student [name=" + name + ", age=" + age + ", address=" + address + "]"; } } 复制代码 上面是我的一个普通的java实体类,看json-lib如何把它化为字符串形式, 复制代码 public static void convertObject() { Student stu=new Student(); stu.setName("JSON"); stu.setAge("23"); stu.setAddress("北京市西城区"); //1、使用JSONObject JSONObject json = JSONObject.fromObject(stu); //2、使用JSONArray JSONArray array=JSONArray.fromObject(stu); String strJson=json.toString(); String strArray=array.toString(); System.out.println("strJson:"+strJson); System.out.println("strArray:"+strArray); }
Java中,可以使用JSON库来将JSON字符串转换为Map对象。下面是几种常见的方法方法一:使用JSONObject类 可以使用JSONObject类提供的方法JSON字符串转换为Map对象。首先,使用JSON.parseObject方法JSON字符串解析为JSONObject对象,然后使用JSONObject的toJSONString方法JSONObject对象转换字符串,最后使用JSONObject的parseObject方法字符串转换为Map对象。示例代码如下: ``` import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; public Map<String, Object> jsonToMap(String jsonString) { JSONObject jsonObject = JSON.parseObject(jsonString); String mapString = jsonObject.toJSONString(); Map<String, Object> map = JSONObject.parseObject(mapString, Map.class); return map; } ``` 方法二:使用fastjson库 也可以使用fastjson库提供的方法JSON字符串转换为Map对象。首先,使用JSON.parseObject方法JSON字符串解析为JSONObject对象,然后使用JSONObject的toJavaObject方法JSONObject对象转换为Map对象。示例代码如下: ``` import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; public Map<String, Object> jsonToMap(String jsonString) { JSONObject jsonObject = JSON.parseObject(jsonString); Map<String, Object> map = jsonObject.toJavaObject(Map.class); return map; } ``` 以上是两种常见的将JSON字符串转换成Map对象方法,你可以根据自己的需求选择其中的一种来使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛变涡流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值