【Json/ObjectMapper】将限制用户名密码的Elasticsearch9200端口返回的默认内容转化为类
【192.168.32.128的用户密码】
elastic/123456
【192.168.32.128上ES默认返回的内容】
{ "name" : "node-1", "cluster_name" : "liangshan", "cluster_uuid" : "h6AscLaBS0qyOKdfq1DO8w", "version" : { "number" : "7.11.1", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "ff17057114c2199c9c1bbecc727003a907c0db7a", "build_date" : "2021-02-15T13:44:09.394032Z", "build_snapshot" : false, "lucene_version" : "8.7.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
【目标】
把上述内容转化为对象
【实体类Elastic】
public class Elastic { private String name; private String cluster_name; private String cluster_uuid; private String tagline; private Version version; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCluster_name() { return cluster_name; } public void setCluster_name(String cluster_name) { this.cluster_name = cluster_name; } public String getCluster_uuid() { return cluster_uuid; } public void setCluster_uuid(String cluster_uuid) { this.cluster_uuid = cluster_uuid; } public String getTagline() { return tagline; } public void setTagline(String tagline) { this.tagline = tagline; } public Version getVersion() { return version; } public void setVersion(Version version) { this.version = version; } public String toString(){ return name+"_"+cluster_name+"_"+cluster_uuid+"_"+tagline+"_"+version.getBuild_date(); } }
【实体类Version】
public class Version { private String number; private String build_flavor; private String build_type; private String build_hash; private String build_date; private boolean build_snapshot; private String lucene_version; private String minimum_wire_compatibility_version; private String minimum_index_compatibility_version; public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getBuild_flavor() { return build_flavor; } public void setBuild_flavor(String build_flavor) { this.build_flavor = build_flavor; } public String getBuild_type() { return build_type; } public void setBuild_type(String build_type) { this.build_type = build_type; } public String getBuild_hash() { return build_hash; } public void setBuild_hash(String build_hash) { this.build_hash = build_hash; } public String getBuild_date() { return build_date; } public void setBuild_date(String build_date) { this.build_date = build_date; } public boolean isBuild_snapshot() { return build_snapshot; } public void setBuild_snapshot(boolean build_snapshot) { this.build_snapshot = build_snapshot; } public String getLucene_version() { return lucene_version; } public void setLucene_version(String lucene_version) { this.lucene_version = lucene_version; } public String getMinimum_wire_compatibility_version() { return minimum_wire_compatibility_version; } public void setMinimum_wire_compatibility_version(String minimum_wire_compatibility_version) { this.minimum_wire_compatibility_version = minimum_wire_compatibility_version; } public String getMinimum_index_compatibility_version() { return minimum_index_compatibility_version; } public void setMinimum_index_compatibility_version(String minimum_index_compatibility_version) { this.minimum_index_compatibility_version = minimum_index_compatibility_version; } }
【访问及转化代码】
import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.catalina.authenticator.BasicAuthenticator; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.HttpClient; import org.apache.http.impl.client.BasicCredentialsProvider; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.web.client.RestTemplate; public class AccessCredentialEs { public static void main(String[] args) throws Exception{ BasicCredentialsProvider provider=new BasicCredentialsProvider(); provider.setCredentials(AuthScope.ANY,new UsernamePasswordCredentials("elastic","123456")); CloseableHttpClient httpClient= HttpClients.custom().setDefaultCredentialsProvider(provider).useSystemProperties().build(); ClientHttpRequestFactory factory=new HttpComponentsClientHttpRequestFactory(httpClient); RestTemplate tplt=new RestTemplate(); tplt.setRequestFactory(factory); String rsps=tplt.getForObject("http://192.168.32.128:9200",String.class); System.out.println(rsps); ObjectMapper mapper = new ObjectMapper(); Elastic elastic = mapper.readValue(rsps, Elastic.class); System.out.println(elastic); } }
【输出】
从System.out.println(elastic);开始的内容
node-1_liangshan_h6AscLaBS0qyOKdfq1DO8w_You Know, for Search_2021-02-15T13:44:09.394032Z
可以看到,如果存在类与Json文的对应关系,要转化还是很方便的。
END
分类:
Java.JSON
, Java.ElasticsSearch
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2020-03-03 zt:HttpUrlConnection使用详解
2020-03-03 使用HttpUrlConnection访问www.163.com遇到503问题,用设置代理加以解决
2019-03-03 【Canvas与艺术】模拟五个桌球在球桌上进行完全弹性碰撞
2019-03-03 [Canvas与艺术]带尾迹的下雪效果
2019-03-03 【Canvas与诗词】夏日绝句 李清照
2019-03-03 【Canvas与光阑】四条C形色带填满一个圆/环形
2019-03-03 【Canvas与艺术】自制朝阳电脑桌面(1920*1080)