在数据库中会出现要存JSON数据的情况,但是由于项目的编程人员不一样,在存JSON数据可能出现不同的情况,导致在取数据时将JSON数据转换为集合时出现格式不匹配,说一下笔者遇到的情况,如
- ["1", "2"]
- "[\"1\",\"2\"]"
产生的原因:
这两种情况区别在于一个使用了转义字符一个没有使用转义字符
第一个数据在添加进数据库时,直接将集合数据转为了字符串
第二个数据在添加进数据库时,对数据进行了JSON格式的转换
解决方法:
- 第二种数据存在转义字符,在取数据时是标准的JSON数据格式,自然是可以直接拿到数据后直接使用转换方法进行转换
- 第一种数据直接拿到时数据存在空格,不是标准的JSON格式,需要先将它转化为标准格式后才能再将其转化为集合
//转换前数据之间是存在空格的 ["1", "2"] String list = user.getList(); //转换后去除了空格 ["1","2"] JSONArray jsonArray = JSON.parseArray(CardInfo.getTagList()); List<String> list = JSON.parseArray(jsonArray.toJSONString(), String.class);