Java 如何摆脱';JSON序列化中的字符?
我想使用Jackson序列化一个对象。 以下是json:Java 如何摆脱';JSON序列化中的字符?,java,json,parsing,serialization,jackson,Java,Json,Parsing,Serialization,Jackson,我想使用Jackson序列化一个对象。 以下是json: [ { "texte": "Quel sont les trois grands principes de la POO ?", "topic": "Java", "reponses": [ { "texte"
[
{
"texte": "Quel sont les trois grands principes de la POO ?",
"topic": "Java",
"reponses": [
{
"texte": "L\\'encapsulation, l\\'héritage et le polymorphisme.",
"isTrue": true
},
{
"texte": "L\\'encapsulation, l\\'héritage multiple et le polymorphisme.",
"isTrue": false
},
{
"texte": "Le multi-threading, l\\'accès aux données et le polymorphisme.",
"isTrue": false
}
]
},
{
"texte": "Quel interface implémente la classe ArrayList ?",
"topic": "Java",
"reponses": [
{
"texte": "List",
"isTrue": true
},
{
"texte": "Queue",
"isTrue": false
},
{
"texte": "Serializable",
"isTrue": false
}
]
}
]
以下是Java代码:
public static void main(String[] args) throws IOException {
FileReader reader = new FileReader();
File jsonFile = reader.getFile("questions/datas.json");
ObjectMapper mapper = new ObjectMapper();
List<Question> questions = mapper.reader()
.forType(new TypeReference<List<Question>>() {})
.readValue(jsonFile);
System.out.println(questions);
}
publicstaticvoidmain(字符串[]args)引发IOException{
FileReader=新的FileReader();
文件jsonFile=reader.getFile(“questions/datas.json”);
ObjectMapper mapper=新的ObjectMapper();
列出问题=mapper.reader()
.forType(新类型引用(){})
.readValue(jsonFile);
系统输出打印(问题);
}
最后我有一个错误:
[源代码]处的UTF-8中间字节0x72无效
C:\Users\josselin.douineau\projects\quizz java generator\target\classes\questions\datas.json;
行:7,列:41](通过引用链:
java.util.ArrayList[0]->com.douineau.entity.Question[“reponses”]->java.util.ArrayList[0]-com.douineau.entity.Reponse[“texte”])
有人知道这是怎么回事吗?
我不是IT出身,所以我不太了解这种类型的消息。错误是由
l\\'héritage et
中的转义字符\\'
引起的。可以将对象映射器配置为允许转义字符
ObjectMapper mapper = new ObjectMapper();
mapper.configure(JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER, true);
错误是由
l\\'héritage et
中的转义字符\\\'
引起的。可以将对象映射器配置为允许转义字符
ObjectMapper mapper = new ObjectMapper();
mapper.configure(JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER, true);
这是一个偶然的问题,我的文件设置为cp1252。它在没有JsonParser选项的情况下工作。这是一个加密问题,我的文件被设置为cp1252。它在没有JsonParser选项的情况下工作。