Json字符串和对象相互转换

2022-11-15 10:08:01 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

文章目录

  • 1、JsonUtil
    • 工具类
      • 把对象转换为json字符串
      • 把json字符串转换为对象
      • 把json字符串转换为List集合
  • 2、Gson
    • 把对象转换为json字符串
    • 把json字符串转换为对象
    • 把json字符串转换为List对象
    • 把list转换为json格式字符串

1、JsonUtil

工具类

代码语言:javascript复制
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonUtil { 

private static final ObjectMapper MAPPER = new ObjectMapper();
/** * 把对象转字符串 * @param data * @return */
public static String objectToJson(Object data){ 

try { 

return MAPPER.writeValueAsString(data);
}catch (Exception e){ 

e.printStackTrace();
}
return null;
}
/** * json字符串转对象 * @param jsonData * @param beanType * @param <T> * @return */
public static <T> T jsonToPojo(String jsonData, Class<T> beanType){ 

try { 

T t = MAPPER.readValue(jsonData,beanType);
return t;
}catch (Exception e){ 

e.printStackTrace();
}
return null;
}
}

Jackson

把对象转换为json字符串
代码语言:javascript复制
ObjectMapper objectMapper = new ObjectMapper();
People peo = new People();
String jsonStr = objectMapper.writeValueAsString(peo);
把json字符串转换为对象
代码语言:javascript复制
ObjectMapper objectMapper = new ObjectMapper();
People peo = objectMapper.readValue(jsonStr, People.class);
把json字符串转换为List集合
代码语言:javascript复制
ObjectMapper objectMapper = new ObjectMapper();
JavaType javaType = objectMapper.getTypeFactory().constructParametricType(List.class, People.class);
List<People> list = objectMapper.readValue(jsonStr, javaType);

2、Gson

把对象转换为json字符串
代码语言:javascript复制
Gson gson = new Gson();
String userJson = gson.toJson(userObject);
把json字符串转换为对象

// str代表的是json字符串,Student.class代表的是你要转成的类型 Gson gson = new Gson(); Student student = gson.fromJson(str, Student.class);

把json字符串转换为List对象
代码语言:javascript复制
Type type = new TypeToken<List<User>>() { 
}.getType();
List<User> userLists = new Gson().fromJson(json, type);
把list转换为json格式字符串
代码语言:javascript复制
String json = new Gson().toJson(list);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/234871.html原文链接:https://javaforall.cn

0 人点赞