我用多行字符分隔多行json字符串。我使用傑克遜版本1.9.13例如json mapper writerWithDefaultPrettyPrinter用於換行的多個json對象
{"name":"firstPerson","age":25,"gender":"male"}\n
{"name":"secondPerson","age":30,"gender":"male"}\n
{"name":"thirdPerson","age":25,"gender":"male"}\n
...............
定界符可以的\ n \ R或\ n基於使用的操作系統上。基本上它是一個批量記錄處理,我們將所有內容保存回數據庫。但我們也保存整個請求。
我的要求是,當我在prettyprint使用format.Please發現代碼
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);
}
}
獲得JSON對象的多行
的出來說就是:
{
"name" : "firstPerson",
"age" : 25,
"gender" : "male"
}
但我想顯示作爲:
{
"name" : "secondPerson",
"age" : 30,
"gender" : "male"
}
{
"name" : "thirdPerson",
"age" : 25,
"gender" : "male"
}
{
"name" : "firstPerson",
"age" : 25,
"gender" : "male"
}
我知道它不是json字符串的標準方式。 json字符串總是被封閉在花brass中。但因爲它已經存在系統,我不想打破系統來改變代碼。它可以簡單地使用java中的任何字符串處理函數完成,但我需要使用傑克遜和傑克遜漂亮的打印機。 有沒有辦法做到這一點?
感謝, Eresh
這就是正確的,我已經做過某事 。但我的問題是有可能json認爲我的json字符串包含一些對象的東西。例如,objectMapper.writerWithDefaultPrettyPrinter()。writeValueAsString(objectMapper.readValue(str,Object []。class))。這樣json mapper會自動地意識到,嘿,我有字符串的對象,而不是單個字符串。雖然我的json字符串有一些發明 – Eresh