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 list = new ArrayList();
        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);
    }

maven依赖的包:


    net.sf.json-lib
    json-lib
    2.4
    jdk15



    org.json
    json
    20230227



    net.sf.ezmorph
    ezmorph
    1.0.6




    commons-beanutils
    commons-beanutils
    1.9.4




    commons-collections
    commons-collections
    3.2.2




    org.apache.commons
    commons-lang3
    3.4




    commons-lang
    commons-lang
    2.6




    commons-logging
    commons-logging
    1.2




    commons-io
    commons-io
    2.4

你可能感兴趣的:(java,json,开发语言)