我有多行 json 字符串,由换行符分隔。我正在使用 jackson 版本 1.9.13 例如
{"name":"firstPerson","age":25,"gender":"male"}\n
{"name":"secondPerson","age":30,"gender":"male"}\n
{"name":"thirdPerson","age":25,"gender":"male"}\n
...............
Run Code Online (Sandbox Code Playgroud)
根据所使用的操作系统,分隔符可以是 \n\r 或 \n。基本上,这是一个批处理记录处理,我们将所有内容保存回数据库。但我们也保存整个请求。
我的要求是当我以 PrettyPrint 格式使用时获取多行 json 对象。请找到代码
import java.io.IOException;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
public class Main {
public static void main(String[] args) throws JsonGenerationException, JsonMappingException, JsonParseException, IOException {
//mapper.configure(Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER, true);
//mapper.configure(Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true);
String json = "{\"name\":\"firstPerson\",\"age\":25,\"gender\":\"male\"}\n{\"name\":\"secondPerson\",\"age\":30,\"gender\":\"male\"}\n{\"name\":\"thirdPerson\",\"age\":25,\"gender\":\"male\"}";
System.out.println(objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(objectMapper.readValue(json, Object.class)));
System.out.println(json);
}
}
Run Code Online (Sandbox Code Playgroud)
输出是:
{
"name" : "firstPerson",
"age" : 25,
"gender" : "male"
}
Run Code Online (Sandbox Code Playgroud)
但我想显示为:
{
"name" : "secondPerson",
"age" : 30,
"gender" : "male"
}
{
"name" : "thirdPerson",
"age" : 25,
"gender" : "male"
}
{
"name" : "firstPerson",
"age" : 25,
"gender" : "male"
}
Run Code Online (Sandbox Code Playgroud)
我知道它不是 json 字符串的标准方式。json 字符串始终包含在flower brasis 中。但由于它已经是现有系统,我不想破坏系统来更改代码。它可以简单地使用java中的任何字符串处理函数来完成,但我需要使用杰克逊和杰克逊的漂亮打印机。有办法完成这件事吗?
谢谢,埃雷什
小智 2
String person= "{\"name\":\"firstPerson\",\"age\":25,\"gender\":\"male\"}\n{\"name\":\"secondPerson\",\"age\":30,\"gender\":\"male\"}\n{\"name\":\"thirdPerson\",\"age\":25,\"gender\":\"male\"}";
Object json = mapper.readValue(person, Object.class);
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(json));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19466 次 |
| 最近记录: |