gpt4 book ai didi

java - 将 HashMap 转换为 JSONArray,值无法正确输入

转载 作者:行者123 更新时间:2023-11-30 06:06:43 26 4
gpt4 key购买 nike

我收到了来自 Elasticsearch 的重复响应,以避免我使用 Hashmap 实现并将所有值放入HashMap 对象中。

之后,我将迭代 HashMap 对象以转换为 JSONArray。

我从distinctObjects(HashMap 对象)获取一条唯一记录。但是如果转换成 JSONArray 后,JSONArray 的长度显示 2 它应该是 1 并且正在打印 JSONArray,如下所示。

JSONArray --->[{"code":"VA1125-GGA-1","id":"code"},{"code":"12816","id":"id"}]

预期结果应该是:

JSONArray --->[{"code":"VA1125-GGA-1","id":"12816"}]

请在下面找到我的代码。

JSONObject responseObj;
JSONArray responseArray = new JSONArray();
Map<String, Object> distinctObjects = null;
SearchHit[] searchHits2 = searchResponse2.getHits().getHits();
for (SearchHit hit2 : searchHits2) {
Map<String, Object> sourceAsMap2 = hit2.getSourceAsMap();
distinctObjects = new HashMap<String, Object>();
distinctObjects.put("id", sourceAsMap2.get("id").toString());
distinctObjects.put("code", sourceAsMap2.get("code").toString());
}

Iterator it = distinctObjects.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
System.out.println(pair.getKey() + " = " + pair.getValue());
responseObj = new JSONObject();
responseObj.put("id", pair.getKey());
responseObj.put("code", pair.getValue());
responseArray.put(responseObj);
it.remove(); // avoids a ConcurrentModificationException
}

System.out.println("Link ID List Size --->"+responseArray.length());
System.out.println("JSONArray --->"+responseArray.toString());

最佳答案

看起来您正在将 codeid 作为顶级条目添加到您的distinctObjects 映射中,这就是您返回两个对象的原因。假设您想根据 ID 进行重复数据删除,您的第一个循环应如下所示:

for (SearchHit hit2 : searchHits2) {
Map<String, Object> sourceAsMap2 = hit2.getSourceAsMap();
distinctObjects = new HashMap<String, Object>();
distinctObjects.put(sourceAsMap2.get("id"), sourceAsMap2.get("code").toString());
}

这将为每个具有 code 值的唯一 id 在 distinctObjects 中提供一个条目。

如果您需要的不仅仅是code,您还可以添加sourceAsMap2作为distinctObjects中的值来维护完整响应下游加工。

关于java - 将 HashMap 转换为 JSONArray,值无法正确输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51150674/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com