【发布时间】:2023-02-18 02:55:08
【问题描述】:
块引用
我有以下 JSON 输入请求,必须按以下方式分组ID范围。
输入 :
[ { "ID": "1234", "CustomerName": "KUMAR", "BranchName": "HARBOUR", "SchemeName": "GOLD", "MobileNumber": "123456789", "CustomerType": "PRIMARY", "DedupeFound" : "NO" }, { "ID": "1234", "CustomerName": "SEAN", "BranchName": "HARBOUR", "SchemeName": "GOLD", "MobileNumber": "123456789", "CustomerType": "SECONDARY", "DedupeFound" : "YES" }, { "ID": "5678", "CustomerName": "MARK", "BranchName": "CANTONMENT", "SchemeName": "DIAMOND", "MobileNumber": "123456789", "CustomerType": "PRIMARY", "DedupeFound" : "NO" }, { "ID": "5678", "CustomerName": "STEVE", "BranchName": "CANTONMENT", "SchemeName": "DIAMOND", "MobileNumber": "123456789", "CustomerType": "SECONDARY", "DedupeFound" : "YES" } ]上面的请求需要按照下面的方式进行改造
- 首先根据 ID 标签对记录进行分组,只需要显示主 ID 的详细信息
- 在 ID 记录详细信息中。我有两个客户的 DedupeDetails 数组。
输出
[ { "ID": "1234", "CustomerName": "KUMAR", // Only Primary Customer Details for the "BranchName": "HARBOUR", // ID Tag to be displayed here "SchemeName": "GOLD", "MobileNumber": "123456789" "DedupeDetails": [ { "CustomerType": "PRIMARY" "CustomerName": "KUMAR", "DedupeFound" : "NO" }, { "CustomerType": "SECONDARY" "CustomerName": "SEAN", "DedupeFound" : "YES" } ] }, { "ID": "5678", "CustomerName": "MARK", "BranchName": "CANTONMENT", "SchemeName": "DIAMOND", "MobileNumber": "123456789" "DedupeDetails": [ { "CustomerType": "PRIMARY" "CustomerName": "MARK", "DedupeFound" : "NO" }, { "CustomerType": "SECONDARY" "CustomerName": "STEVE", "DedupeFound" : "YES" } ] } ]我已经开始使用 apache camel 中的 java 代码。我能够成功地将 json 字符串映射到对象列表。我仍然对如何进行分组以实现输出一无所知。
注意:我是 java 的新手。强烈建议任何建议/更正。
爪哇
package com.mycompany.Login; import java.util.List; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.sql.Timestamp; import java.io.File; import java.io.PrintWriter; import java.sql.Time; import com.mycompany.Login.*; import org.apache.camel.Exchange; import org.apache.camel.Processor; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.mycompany.Dedupe.DedupeRoot.DedupeRes; public class LoginMapping implements Processor{ public void process(Exchange ex)throws Exception{ try { String responseString = {Input mentioned in post}; ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); List<DedupeRes> dedupe = Arrays.asList(mapper.readValue(responseString, DedupeRes[].class)); int total = dedupe.size(); if (total > 0) { for (int i = 0; i < total; i++) { } } ex.getIn().setBody(responseString); } catch(Exception e) { ex.getIn().setHeader("ExpMsg", "Undefined"); throw e; } } }
【问题讨论】:
标签: java