JSON工具类

本文介绍了在开发中常用的JSON处理工具,包括阿里巴巴的FastJSON的JSONObject和JSONArray类,以及JsonPath的使用方法,同时展示了如何通过Jackson的ObjectMapper进行数据转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     在实际开发中通服都是使用JSON格式数据,那么如何跟JSON打交道呢,下面就写一些JSON的常用转换工具,以及JSON数据提取。

目录

阿里的FastJSON

JSONObject类

JSON类

JSONArray

JSONPath

JsonPath类

 jackson

 ObjectMapper


阿里的FastJSON

	<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.62</version>
		</dependency>

JSONObject类

/*map格式数据转jsonObject类*/
public JSONObject(java.util.Map<java.lang.String,java.lang.Object> map) { }

/*初始化创建JSONObject类*/
public JSONObject(int initialCapacity, boolean ordered) { }

/*JSONObject类是否包含该key*/
public boolean containsKey(java.lang.Object key) {  }

/*JSONObject类是否包含该value*/
public boolean containsValue(java.lang.Object value) { }

/*JSONObject类获取key的value值*/
public java.lang.Object get(java.lang.Object key) { }

//JSONObject对象解析
public com.alibaba.fastjson.JSONObject getJSONObject(java.lang.String key) {  }

/*JSONObject类 获取Value值是JSONArray的key*/
public com.alibaba.fastjson.JSONArray getJSONArray(java.lang.String key) { }

//提取JSON并映射到一个实体类上
public <T> T getObject(java.lang.String key, java.lang.Class<T> clazz) { }

public java.lang.Boolean getBoolean(java.lang.String key) {  }

public java.sql.Timestamp getTimestamp(java.lang.String key) { }

public java.lang.Object put(java.lang.String key, java.lang.Object value) {  }

public void putAll(java.util.Map<? extends java.lang.String,? extends java.lang.Object> m) { }

public void clear() {}
public java.lang.Object remove(java.lang.Object key) {  }
public java.util.Collection<java.lang.Object> values() {}
public java.lang.Object clone() {  }
public boolean equals(java.lang.Object obj) { /* compiled code */ }
public java.lang.Object invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args) throws java.lang.Throwable { /* compiled code */ }

JSON类

public static final java.lang.Object parse(java.lang.String text) { /* compiled code */ }
public static final java.lang.Object parse(java.lang.String text, int features) { }

//带格式返回
public static final java.lang.Object parse(byte[] input, com.alibaba.fastjson.parser.Feature... features) { /* compiled code */ }
public static final java.lang.Object parse(java.lang.String text, com.alibaba.fastjson.parser.Feature... features) { /* compiled code */ }
public static final com.alibaba.fastjson.JSONObject parseObject(java.lang.String text, com.alibaba.fastjson.parser.Feature... features) { /* compiled code */ }
public static final com.alibaba.fastjson.JSONObject parseObject(java.lang.String text) { /* compiled code */ }
public static final <T> T parseObject(java.lang.String text, java.lang.Class<T> clazz, com.alibaba.fastjson.parser.Feature... features) { /* compiled code */ }
public static final <T> T parseObject(java.lang.String text, com.alibaba.fastjson.TypeReference<T> type, com.alibaba.fastjson.parser.Feature... features) { /* compiled code */ }
public static final <T> T parseObject(java.lang.String input, java.lang.reflect.Type clazz, com.alibaba.fastjson.parser.Feature... features) { /* compiled code */ }
public static final <T> T parseObject(java.lang.String text, java.lang.Class<T> clazz) { /* compiled code */ }
public static final com.alibaba.fastjson.JSONArray parseArray(java.lang.String text) { /* compiled code */ }
public static final <T> java.util.List<T> parseArray(java.lang.String text, java.lang.Class<T> clazz) { /* compiled code */ }
public static final java.lang.String toJSONString(java.lang.Object object, com.alibaba.fastjson.serializer.SerializerFeature... features) { /* compiled code */ }
public static final java.lang.String toJSONString(java.lang.Object object, boolean prettyFormat) { /* compiled code */ }
public static final void writeJSONStringTo(java.lang.Object object, java.io.Writer writer, com.alibaba.fastjson.serializer.SerializerFeature... features) { /* compiled code */ }

JSONArray

public JSONArray(java.util.List<java.lang.Object> list) { /* compiled code */ }
public JSONArray(int initialCapacity) { /* compiled code */ }
public int size() { /* compiled code */ }
public boolean isEmpty() { /* compiled code */ }

public boolean contains(java.lang.Object o) { /* compiled code */ }

public java.util.Iterator<java.lang.Object> iterator() { /* compiled code */ }
public <T> T[] toArray(T[] a) { /* compiled code */ }
public java.lang.Object[] toArray() { /* compiled code */ }
public boolean add(java.lang.Object e) { /* compiled code */ }
public boolean remove(java.lang.Object o) { /* compiled code */ }
public boolean containsAll(java.util.Collection<?> c) { /* compiled code */ }
public boolean addAll(java.util.Collection<? extends java.lang.Object> c) { /* compiled code */ }
public boolean addAll(int index, java.util.Collection<? extends java.lang.Object> c) { /* compiled code */ }
public boolean retainAll(java.util.Collection<?> c) { /* compiled code */ }
public boolean removeAll(java.util.Collection<?> c) { /* compiled code */ }
public java.lang.Object set(int index, java.lang.Object element) { /* compiled code */ }
public void add(int index, java.lang.Object element) { /* compiled code */ }
public java.lang.Object get(int index) { /* compiled code */ }
public com.alibaba.fastjson.JSONObject getJSONObject(int index) { /* compiled code */ }

JSONPath

       <dependency>
            <groupId>com.jayway.jsonpath</groupId>
            <artifactId>json-path</artifactId>
        </dependency>

JsonPath类

public <T> T read(java.lang.Object jsonObject) { /* compiled code */ }
public <T> T set(java.lang.Object jsonObject, java.lang.Object newVal, com.jayway.jsonpath.Configuration configuration) { /* compiled code */ }
public <T> T read(java.lang.String json) { /* compiled code */ }
public <T> T add(java.lang.Object jsonObject, java.lang.Object value, com.jayway.jsonpath.Configuration configuration) { /* compiled code */ }
public static com.jayway.jsonpath.DocumentContext parse(java.lang.String json) { /* compiled code */ }
public static com.jayway.jsonpath.DocumentContext parse(java.lang.Object json, com.jayway.jsonpath.Configuration configuration) { /* compiled code */ }
public static com.jayway.jsonpath.DocumentContext parse(java.net.URL json) throws java.io.IOException { /* compiled code */ }

实例:
   public static String jsonFromJsonPath(String json, String path) {
        try {
            String rs = JsonPath.read(json, path);
            return rs;
        } catch (Exception e) {
            log.info("---jsonpath解析出错-  {}--", e.getMessage());
        }
        return null;
    }

 jackson

<!-- json包  jackson-->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.8.5</version>
</dependency>
 
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.5</version>
</dependency>
 
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.8.5</version>
</dependency>

 ObjectMapper

 public static ObjectMapper objectMapper = new ObjectMapper();

public <T> T readValue(JsonParser p, Class<T> valueType)
    throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(JsonParser p, JavaType valueType)
    throws IOException, JsonParseException, JsonMappingException
public <T extends TreeNode> T readTree(JsonParser p)
    throws IOException, JsonProcessingException
public void writeValue(JsonGenerator g, Object value)
    throws IOException, JsonGenerationException, JsonMappingException
public <T> T readValue(File src, Class<T> valueType)
    throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(File src, JavaType valueType)
    throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(URL src, Class<T> valueType)
    throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(String content, Class<T> valueType)
    throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(InputStream src, Class<T> valueType)
    throws IOException, JsonParseException, JsonMappingException
public void writeValue(File resultFile, Object value)
    throws IOException, JsonGenerationException, JsonMappingException
public void writeValue(OutputStream out, Object value)
    throws IOException, JsonGenerationException, JsonMappingException
public String writeValueAsString(Object value)
    throws JsonProcessingException
public byte[] writeValueAsBytes(Object value)
    throws JsonProcessingException
public ObjectWriter writer()
public ObjectWriter writer(SerializationFeature feature) 

public class JSONUtils {
    //静态
    public static ObjectMapper objectMapper = new ObjectMapper();

    /**
     * json结果集转对象
     * @param jsonData
     * @param beanType
     * @param <T>
     * @return
     */
    public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
        try {
            T t = objectMapper.readValue(jsonData, beanType);
            return t;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }


    /**
     * 将字符串数组转换为object数组
     * @param <T>
     * @Author 鹿少年 2020年9月18日 上午9:29:09
     * @param jsonData
     * @param beanType
     * @return
     */
    @SuppressWarnings("unchecked")
    public static <T> T[] JsonArrayStringToObajectArray(String jsonData, Class<T[]> beanType) {
        T[] array = null;
        try {
            array = (T[]) objectMapper.readValue(jsonData, beanType);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return array;
    }

    /**
     * 将json数据转换成pojo对象list
     * @Author 鹿少年 2020年9月18日 下午1:46:45
     * @param jsonData
     * @param beanType
     * @return
     */
    public static <T> List<T> jsonArrayToList(String jsonData, Class<T[]> beanType) {
        try {
            return Arrays.asList(objectMapper.readValue(jsonData, beanType));

        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * jsonarray转list,不可以转map
     * @Author 鹿少年 2020年9月18日 下午1:11:20
     * @param jsonData
     * @param T
     * @return
     */
    public static <T> List<T> JsonArrayToList(String jsonData, TypeReference T) {
        try {
            return (List<T>) objectMapper.readValue(jsonData, T);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员路同学

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

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

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

打赏作者

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

抵扣说明:

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

余额充值