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);
posted @ 2022-10-08 15:32  Ideaway  阅读(72)  评论(0)    收藏  举报