次のようなデータがあります。
{
"status": "success",
"data": {
"irrelevant": {
"serialNumber": "XYZ",
"version": "4.6"
},
"data": {
"lib": {
"files": [
"data1",
"data2",
"data3",
"data4"
],
"another file": [
"file.jar",
"lib.jar"
],
"dirs": []
},
"jvm": {
"maxHeap": 10,
"maxPermSize": "12"
},
"serverId": "134",
"version": "2.3"
}
}
}
JSONデータを整形するために使用している関数は次のとおりです。
public static String stringify(Object o, int space) {
ObjectMapper mapper = new ObjectMapper();
try {
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(o);
} catch (Exception e) {
return null;
}
}
Jackson JSON Processor を使用して、JSON データを文字列にフォーマットしています。何らかの理由で、JSON 形式が必要な形式ではありません。その関数にデータを渡すとき、取得している形式は次のとおりです。
{
"status": "success",
"data": {
"irrelevant": {
"serialNumber": "XYZ",
"version": "4.6"
},
"another data": {
"lib": {
"files": [ "data1", "data2", "data3", "data4" ],
"another file": [ "file.jar", "lib.jar" ],
"dirs": []
},
"jvm": {
"maxHeap": 10,
"maxPermSize": "12"
},
"serverId": "134",
"version": "2.3"
}
}
}
「別のデータ」オブジェクトの下でわかるように、配列は、配列内の各項目の新しい行ではなく、1 行全体として表示されます。JSON データを正しくフォーマットするために stringify 関数を変更する方法がわかりません。