进行java开发的过程中,我们经常会使用json工具进行文件解析,可是有时候我们解析文件会出现文件乱码,导致开发人员无法阅读,那下面来我们就来给大家讲解一下。
json文件乱码怎么办?
我们在springmvc中使用json经常出现乱码格式 如下图:
解决办法一:
我们可以在@RequestMapping()中配置添加produces = "application/json;charset=utf-8",乱码得以解决。但是也出现一个问题,就是每次我们编写@RequestMapping()都需要添加produces = "application/json;charset=utf-8"
解决办法二:
所以我们可以在springmvc的配置文件上添加一段消息StringHttpMessageConverter转换配置!
<mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8"/> </bean> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"> <property name="failOnEmptyBeans" value="false"/> </bean> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
Java如何读取本地json文件?
如下所示:
//读取json文件地址 /* String path = getClass().getClassLoader().getResource("menu.json").toString(); path = path.replace("\\", "/"); if (path.contains(":")) { path = path.replace("file:/", ""); }*/ ClassPathResource resource = new ClassPathResource("menu.json"); File filePath = resource.getFile(); JSONArray btnArray = null; //读取文件 String input = FileUtils.readFileToString(filePath, "UTF-8"); //将读取的数据转换为JSONObject JSONObject jsonObject = JSONObject.fromObject(input); if (jsonObject != null) { //取出按钮权限的数据 btnArray = jsonObject.getJSONArray("btnList"); } Map < String, List < MenuVo >> btnMap = new HashMap < > (); Iterator < Object > num = btnArray.iterator(); //遍历JSONArray,转换格式。按按钮集合按模块(name)放入map中 while (num.hasNext()) { JSONObject btn = (JSONObject) num.next(); btnMap.put((String) btn.get("name"), JSONArray.toList((JSONArray) btn.get("children"), new MenuVo(), new JsonConfig())); }
json文件
{ "btnList": [ { "name": "用户管理" , "children": [ { "id": "yhgladd" , "name": "添加" } , { "id": "yhgledit" , "name": "编辑" } , { "id": "yhgldelete" , "name": "暂停" } , { "id": "yhglstart" , "name": "启用" } , { "id": "yhglsee" , "name": "查看" } ] } , { "name": "角色管理" , "children": [ { "id": "jsgladd" , "name": "添加" } , { "id": "jsgledit" , "name": "编辑" } , { "id": "jsglauth" , "name": "授权" } , { "id": "jsgldelete" , "name": "删除" } ] } ] }
这样我们就可以读取json本地文件了,当然本地文件需要保存好,文件丢失或者错误都会造成无法读取哦!最后大家如果想要了解更多json工具教程知识,敬请关注奇Q工具网。
推荐阅读: