json各种操作
使用alibaba.fastjson
POM
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
String转Json
判断字符串是否可以转化为json对象JSONObject
/**
* 判断字符串是否可以转化为json对象
* @param content
* @return
*/
public static boolean isJsonObject(String content) {
// 此处应该注意,不要使用StringUtils.isEmpty(),因为当content为" "空格字符串时,JSONObject.parseObject可以解析成功,
// 实际上,这是没有什么意义的。所以content应该是非空白字符串且不为空,判断是否是JSON数组也是相同的情况。
if(StringUtils.isBlank(content))
return false;
try {
JSONObject jsonStr = JSONObject.parseObject(content);
return true;
} catch (Exception e) {
return false;
}
}
判断字符串是否可以转化为JSON数组JSONArray
/**
* 判断字符串是否可以转化为JSON数组
* @param content
* @return
*/
public static boolean isJsonArray(String content) {
if(StringUtils.isBlank(content))
return false;
StringUtils.isEmpty(content);
try {
JSONArray jsonStr = JSONArray.parseArray(content);
return true;
} catch (Exception e) {
return false;
}
}
String转化为JSONArray
alibaba.fastjson
JSONArray jsonArray = JSONArray.parseArray(str);
fasterxml.jackson
JSONArray jsonArray = JSONObject.parseArray(stringData);
String转化为JSONObject
alibaba.fastjson
JSONObject jsonObject = JSON.parseObject(jsonStr);
fasterxml.jackson
JSONObject jsonObject = JSONObject.parseObject(stringData);
String转化为Bean对象
alibaba.fastjson
DataHandle handle = JSON.parseObject(fastJsonString, DataHandle.class);
String转BeanList 集合
alibaba.fastjson
List list = JSONObject.parseArray(jsonStr, User.class)
遍历JSONArray
for (int i = 0; i < jsonArray.size(); i++) {
JSONArray ringArray = JSONObject.parseArray(jsonArray.get(i).toString());
for (int i1 = 0; i1 < ringArray.size(); i1++) {
JSONObject jsonObject1 = ringArray.getJSONObject(i1);
//根据key获取内容
String key = jsonObject1.getString("key");
}
}
Map转Json格式字符串String
alibaba.fastjson
String jsonString = JSON.toJSONString(map);
fasterxml.jackson
import com.fasterxml.jackson.databind.ObjectMapper;
Map<String, Object> map = new HashMap<>();
map.put("id",tasksId);
map.put("modelCode",modelCode);
ObjectMapper jsonTo = new ObjectMapper();
String jsonString = jsonTo.writeValueAsString(map);
JSONObject转对象Bean
alibaba.fastjson
//JSONObject
User user = JSON.toJavaObject(jsonObj,User.class);
fasterxml.jackson
//JSONArray
Object obj = jsonArray.get(i);
ObjectMapper objectMapper = new ObjectMapper();
DataHandle dataHandle = objectMapper.convertValue(obj, DataHandle.class);
//JSONObject
JSONObject jsonObject = JSONObject.parseObject(stringData);
ObjectMapper objectMapper = new ObjectMapper();
DataHandle dataHandle = objectMapper.convertValue(jsonObject, DataHandle.class);
对象Bean转JsonString
alibaba.fastjson
import com.alibaba.fastjson.JSONObject;
//将对象转为json格式,如果key值为null那么不显示为null的key
String fastJsonString = JSONObject.toJSONString(dataHandle);
//将对象转为json格式,如果key值为null那么将key=null显示
String fastJsonStringHaveNull = JSONObject.toJSONString(dataHandle, SerializerFeature.WriteMapNullValue);
////想字符类型字段如果为null,转换输出为”“,而非null
String fastJsonStringHaveNullEqNull = JSONObject.toJSONString(dataHandle, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
fasterxml.jackson
ObjectMapper jsonTo = new ObjectMapper();
String jsonString = jsonTo.writeValueAsString(dataHandle);