其中jackson的工具类:
public class CNPCJacksonUtil {
private final static ObjectMapper objectMapper = new ObjectMapper();
static {
objectMapper.configure(JsonParser.Feature.ALLOW_COMMENTS, true);
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
}
public static String encode(Object obj) {
try {
return objectMapper.writeValueAsString(obj);
} catch (Exception e) {
}
return null;
}
/**
* 将json string反序列化成对象
*
* @param json
* @param valueType
* @return
*/
public static <T> T decode(String json, Class<T> valueType) {
try {
return objectMapper.readValue(json, valueType);
} catch (Exception e) {
}
return null;
}
/**
* 将json array反序列化为对象
*
* @param json
* @param jsonTypeReference
* @return
*/
public static <T> T decode(String json, TypeReference<T> jsonTypeReference) {
try {
return (T) objectMapper.readValue(json, jsonTypeReference);
} catch (Exception e) {
}
return null;
}
}
1 获取String中的字段信息:
fastjson:
JSONObject jsonObject = JSONObject.parseObject(resultStr);
Integer count = jsonObject.getInteger("count");
jackson:
JsonNode jsonNode = CNPCJacksonUtil.decode(resultStr, JsonNode.class);
int count = jsonNode.get("count").asInt();
2. string转为对象集合:
fastjson:
List<ProcessInstanceDto> processInstanceDtos = new ArrayList<ProcessInstanceDto>();
if (StringUtils.isNotBlank(jsonResult) ) {
JSONArray jsonArray = JSON.parseArray(jsonResult);
if (jsonArray != null && !jsonArray.isEmpty()) {
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
ProcessInstanceDto processInstanceDto = jsonObject.toJavaObject(ProcessInstanceDto.class);
processInstanceDtos.add(processInstanceDto_Time);
}
}
}
jackson:
if (StringUtils.isNotBlank(jsonResult)){
List<ProcessInstanceDto> dtos = CNPCJacksonUtil.decode(jsonResult, new TypeReference<List<ProcessInstanceDto>>() {});
}