{
"size":0,
"aggs":{
"groupDate": {
"date_histogram": {
"field": "ts",
"min_doc_count": 0,
" interval": "100ms",
"offset":"-8h"
},
"aggs": {
"average_of_value":{
"avg": {
"field":"value"
}
}
}
}
},
"sort": [
{
"ts":{
"order":"asc"
}
}
]
}
第二组 aggs 是跟 groupDate 评级
json在线解析可以了解一下,自动帮你转实体:https://www.sojson.com/json2entity.html
主要是通过控制器实现json数据的封装。aggs是一个对象,sort是一个数组,实体类可以一个,也可以多个,看业务。
==================================
package ;
public class Date_histogram
{
private String field;
private int min_doc_count;
private String interval;
private String offset;
public void setField(String field){
this.field = field;
}
public String getField(){
return this.field;
}
public void setMin_doc_count(int min_doc_count){
this.min_doc_count = min_doc_count;
}
public int getMin_doc_count(){
return this.min_doc_count;
}
public void setInterval(String interval){
this.interval = interval;
}
public String getInterval(){
return this.interval;
}
public void setOffset(String offset){
this.offset = offset;
}
public String getOffset(){
return this.offset;
}
}
==================================
package ;
public class Avg
{
private String field;
public void setField(String field){
this.field = field;
}
public String getField(){
return this.field;
}
}
==================================
package ;
public class Average_of_value
{
private Avg avg;
public void setAvg(Avg avg){
this.avg = avg;
}
public Avg getAvg(){
return this.avg;
}
}
==================================
package ;
public class Aggs
{
private Average_of_value average_of_value;
public void setAverage_of_value(Average_of_value average_of_value){
this.average_of_value = average_of_value;
}
public Average_of_value getAverage_of_value(){
return this.average_of_value;
}
}
==================================
package ;
public class GroupDate
{
private Date_histogram date_histogram;
private Aggs aggs;
public void setDate_histogram(Date_histogram date_histogram){
this.date_histogram = date_histogram;
}
public Date_histogram getDate_histogram(){
return this.date_histogram;
}
public void setAggs(Aggs aggs){
this.aggs = aggs;
}
public Aggs getAggs(){
return this.aggs;
}
}
==================================
package ;
public class Aggs
{
private GroupDate groupDate;
public void setGroupDate(GroupDate groupDate){
this.groupDate = groupDate;
}
public GroupDate getGroupDate(){
return this.groupDate;
}
}
==================================
package ;
public class Ts
{
private String order;
public void setOrder(String order){
this.order = order;
}
public String getOrder(){
return this.order;
}
}
==================================
package ;
public class Sort
{
private Ts ts;
public void setTs(Ts ts){
this.ts = ts;
}
public Ts getTs(){
return this.ts;
}
}
==================================
package ;
import java.util.ArrayList;
import java.util.List;
public class Root
{
private int size;
private Aggs aggs;
private List<Sort> sort;
public void setSize(int size){
this.size = size;
}
public int getSize(){
return this.size;
}
public void setAggs(Aggs aggs){
this.aggs = aggs;
}
public Aggs getAggs(){
return this.aggs;
}
public void setSort(List<Sort> sort){
this.sort = sort;
}
public List<Sort> getSort(){
return this.sort;
}
}
再json中,K-V键值对的K对应的是实体类的属性名称,而不是属性类。因此只需要给外层Aggs和内层的Aggs对应的实体类取不同的名称就好。
使用GSON,可以将类自动转换成json。或者使用开发工具的GSONFORMAT插件,json自动生成实体类。
public class text2 {
private int size;
private AggsBean1 aggs;
private List<SortBean> sort;
public static class AggsBean1 {
private GroupDateBean groupDate;
public static class GroupDateBean {
private DateHistogramBean date_histogram;
private AggsBean2 aggs;
public static class DateHistogramBean {
private String field;
private int min_doc_count;
private String interval;
private String offset;
}
public static class AggsBean2 {
private AverageOfValueBean average_of_value;
public static class AverageOfValueBean {
private AverageOfValueBean.AvgBean avg;
public static class AvgBean {
private String field;
}
}
}
}
}
public static class SortBean {
private TsBean ts;
public static class TsBean {
private String order;
}
}
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
csdn不是有现成的IDEA插件可以做这个事情:
https://plugin.csdn.net/idea.html
安装这个插件后,可以在IDEA上直接粘贴这段代码生成实体类。
通过CSDN插件生成的实体类代码为:
package net.csdn.idea;
/**
* csdn
*/
public class Avg {
private String field;
public void setField (String field){
this.field=field;
}
public String getField(){
return field;
}
}
=============================
package net.csdn.idea;
import net.csdn.idea.Aggs
import java.util.List
/**
* csdn
*/
public class Test {
private Aggs aggs;
private Long size;
private List<Sort> sort;
public void setAggs (Aggs aggs){
this.aggs=aggs;
}
public Aggs getAggs(){
return aggs;
}
public void setSize (Long size){
this.size=size;
}
public Long getSize(){
return size;
}
public void setSort (List<Sort> sort){
this.sort=sort;
}
public List<Sort> getSort(){
return sort;
}
}
=============================
package net.csdn.idea;
import net.csdn.idea.Avg
/**
* csdn
*/
public class AverageOfValue {
private Avg avg;
public void setAvg (Avg avg){
this.avg=avg;
}
public Avg getAvg(){
return avg;
}
}
=============================
package net.csdn.idea;
/**
* csdn
*/
public class DateHistogram {
private String field;
private String interval;
private Long minDocCount;
private String offset;
public void setField (String field){
this.field=field;
}
public String getField(){
return field;
}
public void setInterval (String interval){
this.interval=interval;
}
public String getInterval(){
return interval;
}
public void setMinDocCount (Long minDocCount){
this.minDocCount=minDocCount;
}
public Long getMinDocCount(){
return minDocCount;
}
public void setOffset (String offset){
this.offset=offset;
}
public String getOffset(){
return offset;
}
}
=============================
package net.csdn.idea;
import net.csdn.idea.Ts
/**
* csdn
*/
public class Sort {
private Ts ts;
public void setTs (Ts ts){
this.ts=ts;
}
public Ts getTs(){
return ts;
}
}
=============================
package net.csdn.idea;
import net.csdn.idea.DateHistogram
import net.csdn.idea.Aggs
/**
* csdn
*/
public class GroupDate {
private Aggs aggs;
private DateHistogram dateHistogram;
public void setAggs (Aggs aggs){
this.aggs=aggs;
}
public Aggs getAggs(){
return aggs;
}
public void setDateHistogram (DateHistogram dateHistogram){
this.dateHistogram=dateHistogram;
}
public DateHistogram getDateHistogram(){
return dateHistogram;
}
}
=============================
package net.csdn.idea;
import net.csdn.idea.AverageOfValue
import net.csdn.idea.GroupDate
/**
* csdn
*/
public class Aggs {
private AverageOfValue averageOfValue;
private GroupDate groupDate;
public void setAverageOfValue (AverageOfValue averageOfValue){
this.averageOfValue=averageOfValue;
}
public AverageOfValue getAverageOfValue(){
return averageOfValue;
}
public void setGroupDate (GroupDate groupDate){
this.groupDate=groupDate;
}
public GroupDate getGroupDate(){
return groupDate;
}
}
=============================
package net.csdn.idea;
/**
* csdn
*/
public class Ts {
private String order;
public void setOrder (String order){
this.order=order;
}
public String getOrder(){
return order;
}
}