Jsonファイルを集計したいと思います。 私はこれを行うためにTalendを使用するので、私はこの変換をjavaで行う必要があります。 注文ファイルです。jsonファイルを集計する方法は?
{
"order" : [{
"order_line" : {
"name" : "Pains au lait aux pépites de chocolat, 350 g",
"unit_price" : 2.39,
"ean" : "3256540011465",
"price" : 4.78,
"quantity" : 2,
"date" : "-0001-11-30T00:00:00+0009",
"ref" : "23806"
}
}, {
"order_line" : {
"name" : "Eau de montagne, 6 x 1.5 L",
"unit_price" : 1.99,
"ean" : "3596710383931",
"price" : 1.99,
"quantity" : 1,
"date" : "-0001-11-30T00:00:00+0009",
"ref" : "117797"
}
}, {
"order_line" : {
"name" : "Eau de montagne, 6 x 1.5 L",
"unit_price" : 1.99,
"ean" : "3596710383931",
"price" : 1.99,
"quantity" : 1,
"date" : "-0001-11-30T00:00:00+0009",
"ref" : "117797"
}
}, {
"order_line" : {
"name" : "Pains au lait aux pépites de chocolat, 350 g",
"unit_price" : 2.39,
"ean" : "3256540011465",
"price" : 4.78,
"quantity" : 2,
"date" : "-0001-11-30T00:00:00+0009",
"ref" : "23806"
}
}
]
}
私のファイルには、順序通りの項目が含まれていますが、重複しています。
タグ "name"、 "ean"、 "ref"、 "unit_price"が同じ場合、同じ「order_line」に数量を追加し、「order_line」を重複して削除します。
そして、私はこれをしたいが:
{
"order" : [{
"order_line" : {
"name" : "Pains au lait aux pépites de chocolat, 350 g",
"unit_price" : 2.39,
"ean" : "3256540011465",
"price" : 4.78,
"quantity" : 4,
"date" : "-0001-11-30T00:00:00+0009",
"ref" : "23806"
}
}, {
"order_line" : {
"name" : "Eau de montagne, 6 x 1.5 L",
"unit_price" : 1.99,
"ean" : "3596710383931",
"price" : 1.99,
"quantity" : 2,
"date" : "-0001-11-30T00:00:00+0009",
"ref_fo" : "117797"
}
}
]
}
私はXSLとXMLで行う方法を知っています。 しかし、私はキャメルジャワでこれを行う方法を知らない...あなたは何か考えていますか?
jsonPathをご覧ください。 –
これはTalendを使って以下のようにすることができます:jsonを読んで、追加したいフィールドにtAggregateを使って、その後JSONをプリントアウトしてください。 – tobi6