我有一個方法可以匯出每個 POJO 人員并將陣列創建為 JSON:
Node temp = testa;
ObjectMapper mapper = new ObjectMapper();
FileWriter fileWriter = new FileWriter(Paths.get("jPerson.json").toFile(), true);
SequenceWriter seqWriter = mapper.writer().writeValuesAsArray(fileWriter);
while (temp != null) {
seqWriter.write(temp.getPersona());
temp = temp.getSuccessivo();
}
seqWriter.close();
我想創建一個方法來讀取陣列的每個物件并將其列印在螢屏上。這是原型,但它會列印哈希碼(Person@6a1aab78 等):
ObjectMapper mapper = new ObjectMapper();
try {
Persona[] pJson;
pJson = mapper.readValue(Paths.get("jPersona.json").toFile(), Persona[].class);
System.out.println(ReflectionToStringBuilder.toString(pJson));
} catch (IOException e) {
e.printStackTrace();
}
uj5u.com熱心網友回復:
ReflectionToStringBuilder.toString(Object)不會創建“深度”toString方法。在你的情況下,你可以打電話Arrays.toString(pJson),它會得到相同的結果。
最簡單的解決方案是toString在Persona.
public class Persona {
@Override
public String toString() {
return ReflectionToStringBuilder.toString(this);
}
}
System.out.println(Arrays.toString(pJson));
或者您使用 a將陣列Stream中的所有值連接到 one 。pJsonString
System.out.println('[' Arrays.stream(pJson)
.map(ReflectionToStringBuilder::toString)
.collect(Collectors.joining(", ")) ']');
uj5u.com熱心網友回復:
如果您想將 POJO 列印Persona為 JSON,您可以使用 Jackson'sObjectMapper序列化為 aJsonNode并使用JsonNode#toString():
final Persona persona = ...;
final JsonNode json = objectMapper.readValue(persona, JsonNode.class);
System.out.println(json);
如果要列印多個Persona物件,可以迭代:
for(final Persona persona : personas) {
final JsonNode json = objectMapper.readValue(persona, JsonNode.class);
System.out.println(json);
}
或者,更好的是,序列化一次并迭代:
final Persona[] personas = ...;
final JsonNode jsonArray = objectMapper.valueToTree(personas);
// Check may not be necessary.
if(json.isArray()) {
// JsonNode implements Iterable.
for(final JsonNode jsonNode : jsonArray) {
System.out.println(jsonNode);
}
}
uj5u.com熱心網友回復:
你可以用ObjectMapper.
ObjectMapper mapper = new ObjectMapper();
// pretty print
String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(pJson);
System.out.println(json);
參考:https ://mkyong.com/java/how-to-enable-pretty-print-json-output-jackson/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/426797.html
上一篇:根據條件從JSON檔案中獲取值
下一篇:為什么.NET的System.Text.Json.JsonSerializer.Deserialize方法的回傳型別在不回傳null時可以為null?
