将字符串解析为JSON时出现错误

时间:2019-08-28 12:32:31

标签: java json parsing

我想将String转换为JSON,但是应用抛出此错误:

Unexpected character ('/' (code 47)): maybe a (non-standard) comment? (not recognized as one since Feature 'ALLOW_COMMENTS' not enabled for parser)

我的方法:

@Autowired
private RestTemplate restTemplateWCM;

@Value("${app.***.**.*}")
private String root;

@Value("${app.***.**.**.*}")
private String tools;

@Override
public BuscadorWCM getTools() {
String salida = null;
String endpoint = root + tools;
salida = restTemplateWCM.getForObject(endpoint, String.class);
ObjectMapper mapper = new ObjectMapper();
BuscadorWCM actualObj = null;
try {
    actualObj = mapper.readValue(salida, BuscadorWCM.class);
} catch (JsonParseException e) {
    e.printStackTrace();
} catch (JsonMappingException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
return actualObj;
}

我尝试获取的JSON是这样的:

"herramientas":[  
      {  
         "uuid":"abc",
         "tituloHerramienta":"abc",
         "tooltipHerramienta":"abc",
         "urlHerramienta":"abc",
         "icono":"abc",
         "textoHerramienta":"abc",
         "manual":{  
            "linkManual":"/abc/def/ghi/file.pdf",
            "textoManual":"abc",
            "iconoManual":"/abc/def/ghi/image.png"
         },
         "ficheros":[  
            {  
               "tituloFichero":"zxc",
               "tipoFichero":"zxc",
               "iconoFichero":"zxc",
               "imagenFichero":"/abc/def/zxc/image.png",
               "docFichero":"zxc",
               "linkFichero":"zxc"
            }
          ]
      }
]

我的课程:

public class BuscadorWCM {

    private List<HerramientaBuscadorWCM> herramientas;
}

public class HerramientaBuscadorWCM {

    private String uuid;
    private String tituloHerramienta;
    private String tooltipHerramienta;
    private String urlHerramienta;
    private String icono;
    private String textoHerramienta;
    private ManualWCM manual;
    private List<FicheroWCM> ficheros;
}

ManualWXM类只有三个字符串,而FciheroWCM类只有六个字符串。

该错误表示第8行第11列是json('<'simbol)中的问题。我无法将带有'>'的字符串转换为JSON?

我尝试使用ResponseEntity但没有用。 我该怎么办?

1 个答案:

答案 0 :(得分:1)

我认为这仅仅是因为您的原始JSON无效。

我看到]是任务的结尾。

如果json有效。 mapper.readValue(salida,BuscadorWCM.class),应将字符串jSON编组到对象中。

编辑2:

我很确定是因为您在POJO imagenFichero中的字段FicheroWCM。最好将此字段保留为File变量

public class FicheroWCM {
    // other properties
    private File imagenFichero;
}

Jackson会执行映射,从而自动取消文件的路径。