この構造を反復するのに問題があります。私はジャクソンを使っていくつかのアプローチがあることを知っています。誰かが迅速かつ管理しやすいソリューションを提供できることを願っています。ジャクソンを使用して複数の子ノードを反復する
JSON構造は全体を通して一貫しており、すべての子はサイズに関係なく「子」フィールドを持ちます。
各ノードにフィールド1、フィールド2、フィールド3を出力したいとします。ノードの階層は無関係です。
JsonFactory factory = new JsonFactory();
JsonParser parser = factory.createParser(json);
while (parser.nextToken() != null) {
String name = parser.getCurrentName();
if ("field1".equals(name)) {
parser.nextToken(); // Advance to the field value
String value = parser.getText(); // Get the field value as a string
System.out.println(value);
}
}
parser.close();
通常のストリーミングAPIを使用するために多くの作業が必要ですが、(階層が重要ではないので)この場合には、適切なようだ:
{
"field1": "example data",
"field2": "example data2",
"field3": "example data3",
"children": [{
"field1": "example data",
"field2": "example data2",
"field3": "example data3",
"children": [{
"field1": "example data",
"field2": "example data2",
"field3": "example data3",
"children": []
},
{
"field1": "example data",
"field2": "example data2",
"field3": "example data3",
"children": []
}
]
}, {
"field1": "example data",
"field2": "example data2",
"field3": "example data3",
"children": [{
"field1": "example data",
"field2": "example data2",
"field3": "example data3",
"children": []
}]
}]
}
階層はここでは無関係です。構造内の3つの値の単純な出力は、私が必要とするものです。私はこれらの要件を反映するためにOPを更新しています。 – user0000001