jackson 转换 list为json时数字类型的值没有加引号?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jackson 转换 list为json时数字类型的值没有加引号?相关的知识,希望对你有一定的参考价值。

项目为maven项目,需要的jar都有专门的人配置好了,在其他同事的机器上运行都会把这个值加引号,在我机器就没有引号,这个值在java中为long 长度为19位,以数值类型传到前台js中会被截断。

数字类型是不需要引号的,字符串必须要加。 参考技术A 在json中数字类型的值不需要加引号追问

数值类型对应的java类型为long 长度设置的19位,传到js中会被截断。

jackson怎么将list转为json字符串

参考技术A Jackson处理一般的JavaBean和Json之间的转换只要使用ObjectMapper 对象的readValue和writeValueAsString两个方法就能实现。但是如果要转换复杂类型Collection如 List<YourBean>,那么就需要先反序列化复杂类型 为泛型的Collection Type。
如果是ArrayList<YourBean>那么使用ObjectMapper 的getTypeFactory().constructParametricType(collectionClass, elementClasses);

如果是HashMap<String,YourBean>那么 ObjectMapper 的getTypeFactory().constructParametricType(HashMap.class,String.class, YourBean.class);
public final ObjectMapper mapper = new ObjectMapper();

public static void main(String[] args) throws Exception
JavaType javaType = getCollectionType(ArrayList.class, YourBean.class);
List<YourBean> lst = (List<YourBean>)mapper.readValue(jsonString, javaType);

/**
* 获取泛型的Collection Type
* @param collectionClass 泛型的Collection
* @param elementClasses 元素类
* @return JavaType Java类型
* @since 1.0
*/
public static JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses)
return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);
本回答被提问者采纳

以上是关于jackson 转换 list为json时数字类型的值没有加引号?的主要内容,如果未能解决你的问题,请参考以下文章

Jackson将json字符串转换成泛型List

如何将字符串转换成javaBean

Java - 使用jackson将json转换为复杂对象

使用jackson将json对象列表转换为hashmap

Jackson将json字符串转换成泛型List

使用Jackson时转换JSON时,日期格式设置