可能是重复的问题,参考链接:https://dev59.com/N53ha4cB1Zd3GeqPcPe6#41509714
使用Jackson并配置它在冒号前不添加空格:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.2</version>
</dependency>
CustomPrettyPrinter.java
:
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.util.DefaultPrettyPrinter;
import java.io.IOException;
class CustomPrettyPrinter extends DefaultPrettyPrinter {
public CustomPrettyPrinter() {
super();
}
public CustomPrettyPrinter(DefaultPrettyPrinter base) {
super(base);
}
@Override
public void writeObjectFieldValueSeparator(JsonGenerator g) throws IOException {
g.writeRaw(": ");
}
@Override
public DefaultPrettyPrinter createInstance() {
return new CustomPrettyPrinter(this);
}
}
UseJackson.java
:
import com.fasterxml.jackson.core.util.DefaultIndenter;
import com.fasterxml.jackson.core.util.DefaultPrettyPrinter;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
import java.util.Properties;
public class UseJackson {
public static void main(String[] args) throws IOException {
DefaultPrettyPrinter.Indenter indenter = new DefaultIndenter(" ", DefaultIndenter.SYS_LF);
DefaultPrettyPrinter printer = new CustomPrettyPrinter();
printer.indentArraysWith(indenter);
printer.indentObjectsWith(indenter);
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setDefaultPrettyPrinter(printer);
Properties properties = new Properties();
properties.put("foo", "3");
properties.put("bar", "4");
objectMapper.writerWithDefaultPrettyPrinter().writeValue(new File("a.json"), properties);
}
}
使用Gson并配置缩进:
UseGson.java
:
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.stream.JsonWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
public class UseGson {
public static void main(String[] args) throws IOException {
Properties properties = new Properties();
properties.put("foo", "3");
properties.put("bar", "4");
JsonWriter jsonWriter = new JsonWriter(new FileWriter("a.json"));
jsonWriter.setIndent(" ");
Gson gson = new GsonBuilder().serializeNulls().create();
gson.toJson(properties, Properties.class, jsonWriter);
jsonWriter.close();
}
}
Intent
”是什么意思? - David Wasser