在实际开发中通服都是使用JSON格式数据,那么如何跟JSON打交道呢,下面就写一些JSON的常用转换工具,以及JSON数据提取。
目录
阿里的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, JsonMappingExceptionpublic <T> T readValue(JsonParser p, JavaType valueType) throws IOException, JsonParseException, JsonMappingExceptionpublic <T extends TreeNode> T readTree(JsonParser p) throws IOException, JsonProcessingExceptionpublic void writeValue(JsonGenerator g, Object value) throws IOException, JsonGenerationException, JsonMappingExceptionpublic <T> T readValue(File src, Class<T> valueType) throws IOException, JsonParseException, JsonMappingExceptionpublic <T> T readValue(File src, JavaType valueType) throws IOException, JsonParseException, JsonMappingExceptionpublic <T> T readValue(URL src, Class<T> valueType) throws IOException, JsonParseException, JsonMappingExceptionpublic <T> T readValue(String content, Class<T> valueType) throws IOException, JsonParseException, JsonMappingExceptionpublic <T> T readValue(InputStream src, Class<T> valueType) throws IOException, JsonParseException, JsonMappingExceptionpublic void writeValue(File resultFile, Object value) throws IOException, JsonGenerationException, JsonMappingExceptionpublic void writeValue(OutputStream out, Object value) throws IOException, JsonGenerationException, JsonMappingExceptionpublic String writeValueAsString(Object value) throws JsonProcessingExceptionpublic byte[] writeValueAsBytes(Object value) throws JsonProcessingExceptionpublic 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;
}
}
本文介绍了在开发中常用的JSON处理工具,包括阿里巴巴的FastJSON的JSONObject和JSONArray类,以及JsonPath的使用方法,同时展示了如何通过Jackson的ObjectMapper进行数据转换。
1687

被折叠的 条评论
为什么被折叠?



