「Java」CharacterEscapesクラスでJacksonのエスケープ対象文字を制御するサンプル
1.親クラスの定義
public class SampleBase {
private ObjectMapper mapper = new ObjectMapper();
public SampleBase(){
mapper.setconfigure(Feature.ESCAPE_NONE_ASCII,TRUE);
mapper.getFactory().setCharacterEscapes(mew JsonChildEscape());
}
}
public class SampleBase {
private ObjectMapper mapper = new ObjectMapper();
public SampleBase(){
mapper.setconfigure(Feature.ESCAPE_NONE_ASCII,TRUE);
mapper.getFactory().setCharacterEscapes(mew JsonChildEscape());
}
}
public class SampleBase { private ObjectMapper mapper = new ObjectMapper(); public SampleBase(){ mapper.setconfigure(Feature.ESCAPE_NONE_ASCII,TRUE); mapper.getFactory().setCharacterEscapes(mew JsonChildEscape()); } }
2.子クラスの定義
public class JsonChildEscape extends CharacterEscapes{
private int[] codeEscapes;
public JsonChildEscape() {
codeEscapes = standardcodeEscapesForJSON();
codeEscapes['<'] = '<';
codeEscapes['>'] = '>';
codeEscapes['/'] = '/';
}
@Override
public int[] getEscapeCodesForAscii() {
return codeEscapes == null ? null : codeEscapes.clone();
}
@Override
public SerializableString getEscapeSequence(int ch) {
return null;
}
}
public class JsonChildEscape extends CharacterEscapes{
private int[] codeEscapes;
public JsonChildEscape() {
codeEscapes = standardcodeEscapesForJSON();
codeEscapes['<'] = '<';
codeEscapes['>'] = '>';
codeEscapes['/'] = '/';
}
@Override
public int[] getEscapeCodesForAscii() {
return codeEscapes == null ? null : codeEscapes.clone();
}
@Override
public SerializableString getEscapeSequence(int ch) {
return null;
}
}
public class JsonChildEscape extends CharacterEscapes{ private int[] codeEscapes; public JsonChildEscape() { codeEscapes = standardcodeEscapesForJSON(); codeEscapes['<'] = '<'; codeEscapes['>'] = '>'; codeEscapes['/'] = '/'; } @Override public int[] getEscapeCodesForAscii() { return codeEscapes == null ? null : codeEscapes.clone(); } @Override public SerializableString getEscapeSequence(int ch) { return null; } }