JAVA 对象转换为JSON

这篇具有很好参考价值的文章主要介绍了JAVA 对象转换为JSON。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

转载:如何把java对象转换为json java对象怎么转成json_clghxq的技术博客_51CTO博客

1、Java对象列表转换为JSON对象数组,并转为字符串

JSONArray jsonArray = JSONArray.fromObject(list);
String jsonArrayStr = jsonArray.toString();


2、把Java对象转换成JSON对象,并转化为字符串

JSONObject jsonObject = JSONObject.fromObject(obj);
String jsonObjectStr = jsonObject.toString();


3、过滤不需要转换为JSON格式的属性

使用jsonConfig对象的setExcludes()方法,传入参数为待过滤属性组成的数组。

JsonConfig cfg = new JsonConfig();
cfg.setExcludes(new String[] {“待过滤属性1”, “待过滤属性2”, ..., “待过滤属性n”});

4. json转bean

JSONObject.toBean(targetJson, targetClass);

5、实例

package com.ajax.test;
import java.util.ArrayList;
import java.util.List;
import com.fasterxml.jackson.core.JsonProcessingException;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
public class Customer {
    public Customer(String name, String id) {
        super();
        this.name = name;
        this.id = id;
    }
    private String name;
    private String id;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public static void main(String[] args) throws JsonProcessingException {
        //包含多个对象的List集合转换为JSON格式
        List<Customer> list = new ArrayList<Customer>();
        Customer c1 = new Customer("Alice", "001");
        Customer c2 = new Customer("Bruce", "002");
        Customer c3 = new Customer("Cindy", "003");
        list.add(c1);
        list.add(c2);
        list.add(c3);
        JsonConfig config1 = new JsonConfig();
        //过滤List集合中的Customer对象的id属性不生成JSON
        config1.setExcludes(new String[] {"id"});
        JSONArray jsonArray = JSONArray.fromObject(list, config1);
        System.out.println(jsonArray.toString());
        //一个对象转换为JSON格式
        Customer c = new Customer("Boss", "004");
        JsonConfig config2 = new JsonConfig();
        //过滤Customer对象的id属性不生成JSON
        config2.setExcludes(new String[] {"id"});
        JSONObject jsonObject = JSONObject.fromObject(c, config2);
        System.out.println(jsonObject.toString());
    }
}

6.将父类对象转化为子类对象:

创建父类实例,将父类实例化

将子类实例转化成json

将父类实例转化成json

遍历父类json实例,使用子类json获取vaule值,设置到父类json中。

代码如下:

public static Object createBeanWith(Class targetClass, Object source) {
        Object target = null;
        try {
            target = targetClass.newInstance();
        } catch (Exception e) {
            return null;
        }
        JSONObject targetJson = JSONObject.fromObject(target);
        JSONObject sourceJson = JSONObject.fromObject(source);
        for (Object key : targetJson.keySet()) {
            if (sourceJson.containsKey(key)) {
                targetJson.put(key, sourceJson.get(key));
            }
        }
        return JSONObject.toBean(targetJson, targetClass);
    }

精简写法:

Object result = JSONObject.parseObject(JSONObject.toJSONString(source), targetClass);

maven依赖的包:

<!--JSON-->
<dependency>
    <groupId>net.sf.json-lib</groupId>
    <artifactId>json-lib</artifactId>
    <version>2.4</version>
    <classifier>jdk15</classifier>
</dependency>

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20230227</version>
</dependency>
<!-- https://mvnrepository.com/artifact/net.sf.ezmorph/ezmorph -->
<dependency>
    <groupId>net.sf.ezmorph</groupId>
    <artifactId>ezmorph</artifactId>
    <version>1.0.6</version>
</dependency>

<!-- https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils -->
<dependency>
    <groupId>commons-beanutils</groupId>
    <artifactId>commons-beanutils</artifactId>
    <version>1.9.4</version>
</dependency>

<!-- https://mvnrepository.com/artifact/commons-collections/commons-collections -->
<dependency>
    <groupId>commons-collections</groupId>
    <artifactId>commons-collections</artifactId>
    <version>3.2.2</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.4</version>
</dependency>

<!-- https://mvnrepository.com/artifact/commons-lang/commons-lang -->
<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.6</version>
</dependency>

<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
</dependency>

<!--用于解析json-->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>

7、使用hutool工具类

import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
public static Object createBeanWith(Class targetClass, Object source) {
        Object target = null;
        try {
            target = targetClass.newInstance();
        } catch (Exception e) {
            return null;
        }
        JSONObject targetJson = JSONUtil.parseObj(target, false);
        JSONObject sourceJson = JSONUtil.parseObj(source, false);
        for (String key : targetJson.keySet()) {
            if (sourceJson.containsKey(key)) {
                targetJson.set(key, sourceJson.get(key));
            }
        }
        return JSONUtil.toBean(targetJson, targetClass);
    }

8、 使用Spring类的方法:

/**
 * 这种方式是用了Spring的工具类, 不关乎是否有继承关系,
 * 只要有相同的属性就会拷贝进去
 */
Foo foo = new Foo();
Son son = new Son();
BeanUtils.copyProperties(foo, son);

参考:

父类转换成子类, 或者是类之间属性拷贝_父类对象转换为子类对象_孔先生在吗的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-691415.html

到了这里,关于JAVA 对象转换为JSON的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JAVA对象、List、Map和JSON之间的相互转换

    参考文章: Java-json相关转换,JSONObject与实体类/map互转、List/List<map>和JSONArray互转、获取JSONObject中的key value、字符串String转换等 【JSON转换】String与JSONObject、JSONArray、JAVA对象和List 的相互转换

    2024年02月03日
    浏览(62)
  • java将json字符串数据转换为List对象

    方法一:使用Jackson库 pom.xml文件中添加以下依赖: 转换之后直接可以用list操作了 方法二:使用Gson库 res: json格式的数据 方法二比方法一使用起来更简便一点

    2024年02月21日
    浏览(51)
  • Java 解析多层嵌套json数据及json字符串与对象的相互转换

    本文主要介绍java解析多层嵌套json数据以及字符串与JSON对象之间的相互转换,包括:json字符串的取值,json对象与字符串的相互转换,字符串转化为java对象,字符串转化为javaList列表等。 提示:以下是本篇文章正文内容,下面案例可供参考 数据格式:JSON实际上就是键值对(

    2024年02月04日
    浏览(62)
  • 【Java alibaba&hutool】JSON、Map、实体对象间的相互转换

            首先要知道三者的互转关系,可以先将JSON理解成是String类型。这篇博文主要是记录阿里巴巴的JSONObject的两个方法。toJSONString()以及parseObject()方法。顺便巩固Map与实体对象的转换技巧。         综上:这里所学得知识使用fastjson是实现Map -- JSON - Bean。其余由糊涂

    2024年02月07日
    浏览(42)
  • <Java工具类>json字符串、List Map,List 对象转换为相应的JavaBean对象

    依赖: 工具类(直接上代码): 使用场景: (1).使用泛型方法:把json字符串转换为相应的JavaBean对象 ; 一般用于:Controller层: 例如: (2).List Map转换List 对象:如List,将第二个参数传递为Student对象; (3).List 对象转换List Map:

    2024年02月12日
    浏览(63)
  • Java中的List<T>对象与Json格式的字符串的相互转换

    在这里我随便举一个例子 OK,以上就是互相转换的过程 我使用的场景是在订单的订单列表项这里,涉及到数据库相应字段数据的存放与提取,我的做法是,将List转换为Json格式字符串存入,取时再将Json格式转为List

    2024年02月15日
    浏览(64)
  • 【JavaSE专栏88】Java字符串和JSON对象的转换,转来转去就是这么玩!

    作者主页 :Designer 小郑 作者简介 :3年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型,CSDN学院、蓝桥云课认证讲师。 主打方向 :Vue、SpringBoot、微信小程序 本文讲解了 JSON 的概念,以及 Java 中 JSON 对象和字符串的转换方法,并给出了样例代

    2024年02月04日
    浏览(56)
  • 微信小程序开发——json对象和字符串转换

    JSON对象和字符串的互转 注意事项 1、JSON操作时一定要保证是JSON格式的字符串,或对象。 报错如下: 原代码 1)JSON对象转字符串 2)JSON字符串转对象 解决:JSON字符串转对象时,字符串值应该是 跳转设置是:“…?item=”+jsonstr,即字符参数是 item ,所以转换时要取值 options

    2024年02月11日
    浏览(51)
  • JSON对象转为Java类对象

    本文讲述两种方法,使JSON对象转为Java类对象。基于 FastJson1 对于以下的JSON对象: 假设以上的JSON对象已通过toJSONString()方法转为String,那么有两种方法可以将其转为Java类对象, 前提是已定义一个YourClass类,其成员变量可以容纳以上records内的各个字段, 两种转换方法如下:

    2024年02月10日
    浏览(59)
  • Java List对象集合转Json & Json转List对象集合

    使用了阿里巴巴的 fastjson  首先引入依赖 示例如下 输出结果:

    2024年02月15日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包