【发布时间】:2018-06-12 12:04:35
【问题描述】:
很难用一句话概括这个问题。向您展示我想要的东西更容易。我有以下 Solr 查询的响应:
{
.....
},
"facet_counts":{
"facet_queries":{},
"facet_fields":{
"city":[
"New York",23258,
"Los Angeles",13322,
"Paris",1189]},
"facet_ranges":{},
"facet_intervals":{},
"facet_heatmaps":{}}}
我使用 GSON 解析这个 JSON 数据并获得一个包含数组“city”的 JsonArray。它包含字段名称(键)和相应值的交替元素。所以例如“洛杉矶”有 13322 次点击。我想遍历这个数组以取出它包含的键=值对。
我可以为这个任务想出一些简单的解决方案,例如
boolean isKey = true;
String key;
String val;
for(JsonElement je : facetMT) {
if(isKey) {
key = je.getAsString();
isKey = false;
} else {
val = je.getAsString();
resultMap.add(key,val);
isKey = true;
}
}
或任何其他区分奇数和偶数元素的方法,例如检查是否可以被 2 整除。
但这感觉很粗糙。我确信 Java 有其他一些优雅的方法可以做到这一点,比如使用迭代器并跳过所有其他元素。但是我在 Java 方面还不够好,不知道如何做到这一点,或者任何其他超级智能的方式。
有什么建议,还是我应该只使用粗略的代码?
【问题讨论】: