POJO转为JSON

package org.smart4j.framework.util;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * JSON工具类
 * Created by Administrator on 2016/11/26.
 */
public final class JsonUtil {

    private static final Logger LOGGER = LoggerFactory.getLogger(JsonUtil.class);

    private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();

    /**
     * 将POJO转为JSON
     * @param obj
     * @param <T>
     * @return
     */
    public static <T> String toJson(T obj) {
        String json;
        try {
            json = OBJECT_MAPPER.writeValueAsString(obj);
        } catch (Exception e) {
            LOGGER.error("convert POJO to JSON failure", e);
            throw new RuntimeException(e);
        }
        return json;
    }

    /**
     * 将JSON转为POJO
     * @param json
     * @param type
     * @param <T>
     * @return
     */
    public static <T> T fromJson(String json, Class<T> type) {
        T pojo;
        try {
            pojo = OBJECT_MAPPER.readValue(json, type);
        } catch (Exception e) {
            LOGGER.error("convert JSON to POJO failure", e);
            throw new RuntimeException(e);
        }
        return pojo;
    }
}

转载于:https://my.oschina.net/NeedLoser/blog/794805

### Java 中 JSON 转换为对象 在Java中,将JSON转换为对象通常借助于第三方库来简化这一过程。Jackson是一个广泛使用的库之一,它提供了强大的功能用于序列化和反序列化操作。 #### 使用 Jackson 库进行 JSON 到对象的转换 为了完成此任务,首先需要引入依赖项。如果项目基于Maven,则可以在`pom.xml`文件里加入如下配置: ```xml <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.13.0</version> </dependency> ``` 接着定义一个简单的POJO类作为目标对象模型[^1]: ```java public class User { private String name; private int age; // Getters and Setters omitted for brevity } ``` 之后编写一段程序用来展示如何利用Jackson解析JSON并映射至上述User实体上: ```java import com.fasterxml.jackson.databind.ObjectMapper; // ... try { ObjectMapper mapper = new ObjectMapper(); // 假设有一个表示用户的JSON字符串 String jsonString = "{\"name\":\"John\",\"age\":30}"; // 将JSON串转化为对应的Java Bean实例 User user = mapper.readValue(jsonString, User.class); } catch (Exception e) { e.printStackTrace(); } ``` 这段代码展示了通过指定的目标类型(`User.class`)让Jackson自动匹配相应的字段名从而填充属性值的过程。 对于更复杂的数据结构比如嵌套的对象或者是集合形式的内容,Jackson同样能够很好地支持,只需确保源端与目的端之间保持一致即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值