记录一波处理方案
首先看下返回的数据格式,如下:
"items":"[{\"content\":\"\清\洁\,\门\窗\完\好\,\照\明\正\常\",\"itemType\":\"1\",\"text\":\"1\",\"title\":\"\机\房\、\滑\轮\间\环\境\",\"value\":\"BYX0101\"},{\"content\":\"\齐\全\,\在\指\定\位\置\",\"itemType\":\"1\",\"text\":\"1\",\"title\":\"\手\动\紧\急\操\作\装\置\",\"value\":\"BYX0102\"},{\"content\":\"\运\行\时\无\异\常\振\动\和\异\常\声\响\",\"itemType\":\"1\",\"text\":\"1\",\"title\":\"\驱\动\主\机\",\"value\":\"BYX0103\"},{\"content\":\"\动\作\灵\活\",\"itemType\":\"1\",\"text\":\"0\",\"title\":\"\制\动\器\各\销\轴\部\位\",\"value\":\"BYX0104\"},{\"content\":\"\打\开\时\制\动\衬\与\制\动\轮\不\应\发\生\摩\擦\,\间\隙\值\符\合\制\造\单\位\要\求\",\"itemType\":\"1\",\"text\":\"0\",\"title\":\"\制\动\器\间\隙\",\"value\":\"BYX0105\"},{\"content\":\"\制\动\力\人\工\方\式\检\测\符\合\使\用\维\护\说\明\书\要\求\;\制\动\力\自\监\测\系\统\有\记\录\",\"itemType\":\"1\",\"text\":\"0\",\"title\":\"\制\动\器\作\为\轿\厢\意\外\移\动\保\护\装\置\制\停\子\系\统\时\的\自\监\测\",\"value\":\"BYX0106\"}]",
由于字段过长,无法直接存表,需要处理一下,也方便之后使用
处理方法如下,亲测可用
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Map;
/**
* @author : liuf
* @version V1.0
* @title: JacksonUtil
* @date 2020年07月07日 13:40
**/
@Slf4j
public class JacksonUtil {
private static ObjectMapper objectMapper = new ObjectMapper();
private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
static {
// 对象的所有字段全部列入
objectMapper.setSerializationInclusion(JsonInclude.Include.ALWAYS);
// 取消默认转换timestamps形式
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
// 忽略空bean转json的错误
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
// 统一日期格式
objectMapper.setDateFormat(new SimpleDateFormat(DATE_FORMAT));
// 忽略在json字符串中存在, 但在java对象中不存在对应属性的情况, 防止错误
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
public static <T> String objToStr(T obj) {
if (null == obj) {
return null;
}
try {
return obj instanceof String ? (String) obj : objectMapper.writeValueAsString(obj);
} catch (Exception e) {
log.warn("objToStr error: ", e);
return null;
}
}
public static <T> T strToObj(String str, Class<T> clazz) {
if (StringUtils.isBlank(str) || null == clazz) {
return null;
}
try {
return clazz.equals(String.class) ? (T) str : objectMapper.readValue(str, clazz);
} catch (Exception e) {
log.warn("strToObj error: ", e);
return null;
}
}
public static <T> T strToObj(String str, TypeReference<T> typeReference) {
if (StringUtils.isBlank(str) || null == typeReference) {
return null;
}
try {
return (T) (typeReference.getType().equals(String.class) ? str : objectMapper.readValue(str, typeReference));
} catch (Exception e) {
log.error("strToObj error", e);
return null;
}
}
public static void main(String[] args) {
String string = "[{\"content\":\"\\u6e05\\u6d01\\uff0c\\u95e8\\u7a97\\u5b8c\\u597d\\uff0c\\u7167\\u660e\\u6b63\\u5e38\",\"itemType\":\"1\",\"text\":\"1\",\"title\":\"\\u673a\\u623f\\u3001\\u6ed1\\u8f6e\\u95f4\\u73af\\u5883\",\"value\":\"BYX0101\"},\n" +
"{\"content\":\"\\u9f50\\u5168\\uff0c\\u5728\\u6307\\u5b9a\\u4f4d\\u7f6e\",\"itemType\":\"1\",\"text\":\"1\",\"title\":\"\\u624b\\u52a8\\u7d27\\u6025\\u64cd\\u4f5c\\u88c5\\u7f6e\",\"value\":\"BYX0102\"},\n" +
"{\"content\":\"\\u8fd0\\u884c\\u65f6\\u65e0\\u5f02\\u5e38\\u632f\\u52a8\\u548c\\u5f02\\u5e38\\u58f0\\u54cd\",\"itemType\":\"1\",\"text\":\"1\",\"title\":\"\\u9a71\\u52a8\\u4e3b\\u673a\",\"value\":\"BYX0103\"},\n" +
"{\"content\":\"\\u52a8\\u4f5c\\u7075\\u6d3b\",\"itemType\":\"1\",\"text\":\"0\",\"title\":\"\\u5236\\u52a8\\u5668\\u5404\\u9500\\u8f74\\u90e8\\u4f4d\",\"value\":\"BYX0104\"}]";
ArrayList<Map<String,Object>> list = strToObj(string, ArrayList.class);
System.out.println(list.size());
for(Map map : list){
System.out.println(map);
System.out.println(map.get("content"));
}
}
}
控制台输出
{content=清洁,门窗完好,照明正常, itemType=1, text=1, title=机房、滑轮间环境, value=BYX0101}
清洁,门窗完好,照明正常
1
1
机房、滑轮间环境
BYX0101
到此值都可以取出
如有不足和错误,请指出,非常感谢