我想将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但没有用。 我该怎么办?
答案 0 :(得分:1)
我认为这仅仅是因为您的原始JSON无效。
我看到]
是任务的结尾。
如果json有效。 mapper.readValue(salida,BuscadorWCM.class),应将字符串jSON编组到对象中。
编辑2:
我很确定是因为您在POJO imagenFichero
中的字段FicheroWCM
。最好将此字段保留为File变量
public class FicheroWCM {
// other properties
private File imagenFichero;
}
Jackson会执行映射,从而自动取消文件的路径。