关于#java#的问题,如何解决?

需要在 java中接收redis的字符串

[
  {
    "MENU_ICON": "\"zmdi zmdi-laptop-mac zmdi-hc-fw\">",
    "MENU_ID": "1",
    "MENU_NAME": "系统管理",
    "MENU_ORDER": "1",
    "MENU_STATE": "1",
    "MENU_TYPE": "2",
    "MENU_URL": "#",
    "PARENT_ID": "0",
    "hasMenu": false
  },
  {
    "MENU_ICON": "\"zmdi zmdi-headset-mic zmdi-hc-fw\">",
    "MENU_ID": "72",
    "MENU_NAME": "我的通讯",
    "MENU_ORDER": "3",
    "MENU_STATE": "1",
    "MENU_TYPE": "1",
    "MENU_URL": "#",
    "PARENT_ID": "0",
    "SHIRO_KEY": "(无)",
    "hasMenu": false
  }
]

在java中我是这么写的


String json=JSON.toJSONString(JSON.parse(redisUtil.getList("menu-"+parentId).toString()));
List list=JSONArray.parseArray(json,Menu.class);

提示错误
syntax error, expect {, actual [, pos 0, fastjson-version 1.2.44

我应该如何解析

字符串带有特殊字符导致的,比如\

可以用String类提供的替换方法,替换掉\和去掉前后的""。后在交给JSON.parseObject()转换       

或者调用JSON.parse()这个解析方法。解析后在交给JSON.parseObject()来转换。

因为 \导致解析失败

问题已解决,我提升了fastjson的版本,问题解决了,谢谢大家的思路