下面列出了com.fasterxml.jackson.core.util.DefaultPrettyPrinter#indentArraysWith ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private static PrettyPrinter buildDefaultPrettyPrinter() {
DefaultPrettyPrinter pp =
new DefaultPrettyPrinter("") {
@Override
public DefaultPrettyPrinter withSeparators(Separators separators) {
this._separators = separators;
this._objectFieldValueSeparatorWithSpaces =
separators.getObjectFieldValueSeparator() + " ";
return this;
}
};
Indenter lfOnlyIndenter = new DefaultIndenter(" ", "\n");
pp.indentArraysWith(lfOnlyIndenter);
pp.indentObjectsWith(lfOnlyIndenter);
return pp;
}
@Inject
private void load() {
if(assetManager == null) {
throw new RuntimeException("AssetManaget has not been set in your setup! Mapping service cannot be performed!");
}
defaultTypeFactory = TypeFactory.defaultInstance();
jsonMapper.setVisibilityChecker(jsonMapper.getDeserializationConfig().getDefaultVisibilityChecker()
.withCreatorVisibility(JsonAutoDetect.Visibility.NONE)
.withFieldVisibility(JsonAutoDetect.Visibility.ANY)
.withGetterVisibility(JsonAutoDetect.Visibility.NONE)
.withIsGetterVisibility(JsonAutoDetect.Visibility.NONE)
.withSetterVisibility(JsonAutoDetect.Visibility.NONE));
jsonMapper.configure(SerializationFeature.INDENT_OUTPUT, true).configure(Feature.ALLOW_COMMENTS, true);
defaultPrettyPrinter = new DefaultPrettyPrinter();
defaultPrettyPrinter.indentArraysWith(new Lf2SpacesIndenter());
}
@Override
public void init(Map<String, String> options, ConfigurationSource cfg) {
super.initCfg(cfg);
int indent = Integer.parseInt(options.getOrDefault("indent", "4"));
String lineEnding = options.getOrDefault("lineending", System.lineSeparator());
boolean spaceBeforeSeparator = Boolean.parseBoolean(options.getOrDefault("spaceBeforeSeparator", "true"));
formatter = new ObjectMapper();
// Setup a pretty printer with an indenter (indenter has 4 spaces in this case)
DefaultPrettyPrinter.Indenter indenter = new DefaultIndenter(Strings.repeat(" ", indent), lineEnding);
DefaultPrettyPrinter printer = new DefaultPrettyPrinter() {
private static final long serialVersionUID = 1L;
@Override
public DefaultPrettyPrinter createInstance() {
return new DefaultPrettyPrinter(this);
}
@Override
public DefaultPrettyPrinter withSeparators(Separators separators) {
this._separators = separators;
this._objectFieldValueSeparatorWithSpaces = (spaceBeforeSeparator ? " " : "")
+ separators.getObjectFieldValueSeparator() + " ";
return this;
}
};
printer.indentObjectsWith(indenter);
printer.indentArraysWith(indenter);
formatter.setDefaultPrettyPrinter(printer);
formatter.enable(SerializationFeature.INDENT_OUTPUT);
}