我有以下内容:
final duration = (jsonBuilder()
.startObject()
.field('start', new DateTime(testResult.startTime, dateTimeZone))
.field('end', new DateTime(testResult.endTime, dateTimeZone))
.endObject())
client.prepareIndex('builds', 'test')
.setSource(jsonBuilder()
.startObject()
.field("duration", duration)
.endObject())
SearchResponse searchResponse = client.prepareSearch('builds')
.setQuery(boolQuery()
.must(termQuery('_type', 'test')))
.execute()
.actionGet()
final source = searchResponse.hits.hits[0].source as Map<String, Object>
Run Code Online (Sandbox Code Playgroud)
如何获取的值duration.start,并duration.end从这里?
试试1 ..!
SearchHit[] searchHits = searchResponse.getHits().getHits();
Map<String, Object> s=searchHits[0].sourceAsMap();
Map<String, Date> duration=(Map<String, Date>) s.get("duration");
Date start=duration.get("start");
Date end=duration.get("end");
Run Code Online (Sandbox Code Playgroud)
试试2 ..!
SearchHit[] searchHits = searchResponse.getHits().getHits();
StringBuilder builder = new StringBuilder();
int length = searchHits.length;
builder.append("[");
for (int i = 0; i < length; i++) {
if (i == length - 1) {
builder.append(searchHits[i].getSourceAsString());
} else {
builder.append(searchHits[i].getSourceAsString());
builder.append(",");
}
}
builder.append("]");
String result= builder.toString();
Run Code Online (Sandbox Code Playgroud)
它将返回一个字符串,其有效的JSON数组使用JSON解析器并获取值作为普通的json进程..!
| 归档时间: |
|
| 查看次数: |
8506 次 |
| 最近记录: |