Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未找到类型为org.json.JSONObject的返回值的转换器_Java_Rest_Spring Boot_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Java,Rest,Spring Boot,elasticsearch" /> elasticsearch,Java,Rest,Spring Boot,elasticsearch" />

Java 未找到类型为org.json.JSONObject的返回值的转换器

Java 未找到类型为org.json.JSONObject的返回值的转换器,java,rest,spring-boot,elasticsearch,Java,Rest,Spring Boot,elasticsearch,我正在编写SpringBootREST服务,以便根据_id(来自弹性搜索)从弹性搜索中获取产品。我能够打印来自服务的响应,这意味着服务能够获取响应,但在转换为JSONObject以返回到UI时会出现错误 未找到类型为class org.json.JSONObject的返回值的转换器 请在下面找到我的代码 public JSONObject getProductById(String id){ String[] includes = new String[]{id}; Strin

我正在编写SpringBootREST服务,以便根据_id(来自弹性搜索)从弹性搜索中获取产品。我能够打印来自服务的响应,这意味着服务能够获取响应,但在转换为JSONObject以返回到UI时会出现错误

未找到类型为class org.json.JSONObject的返回值的转换器

请在下面找到我的代码

public JSONObject getProductById(String id){

    String[] includes = new String[]{id};
    String[] excludes = Strings.EMPTY_ARRAY;
    GetRequest getRequest = new GetRequest(INDEX, TYPE, SOURCE);
    getRequest.routing(id);

    GetResponse getResponse = null;
    try {
        getResponse = restHighLevelClient.get(getRequest);
    } catch (java.io.IOException e){
        e.getLocalizedMessage();
    }

    //GetResponse getResponse = null;

    // create the search request
    SearchRequest searchRequest = new SearchRequest(INDEX); 
    searchRequest.types(TYPE);

    // create the match query on the author field
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("_id", id); 
    searchSourceBuilder.query(matchQueryBuilder); 
    searchRequest.source(searchSourceBuilder);

    // send the request
    SearchResponse searchResponse = null;
    try {
         searchResponse = restHighLevelClient.search(searchRequest);
         logger.info("response ---->"+searchResponse);
    } catch (IOException e) {
        e.getLocalizedMessage();
    }
    // read the response
    String productName = null;
    Product product = null;
    SearchHit[] searchHits = searchResponse.getHits().getHits();
    for (SearchHit hit : searchHits) {
        // get each hit as a Map
        Map<String, Object> sourceAsMap = hit.getSourceAsMap();
        product=new Product();
        product.setName(sourceAsMap.get("name").toString());
        /*productName = (String) sourceAsMap.get("name");*/

    }

    Gson gson=new Gson();
    JSONObject productJSON = null;
    String prodStr=gson.toJson(product);
    try {
        productJSON=new JSONObject(prodStr);
    } catch (JSONException e) { 
        e.printStackTrace();
    }
    return productJSON;
}
公共JSONObject getProductById(字符串id){ 字符串[]包含=新字符串[]{id}; String[]排除=Strings.EMPTY_数组; GetRequest GetRequest=新的GetRequest(索引、类型、源); getRequest.routing(id); GetResponse GetResponse=null; 试一试{ getResponse=restHighLevelClient.get(getRequest); }捕获(java.io.ioe异常){ e、 getLocalizedMessage(); } //GetResponse GetResponse=null; //创建搜索请求 SearchRequest SearchRequest=新的SearchRequest(索引); searchRequest.types(TYPE); //在“作者”字段上创建匹配查询 SearchSourceBuilder SearchSourceBuilder=新的SearchSourceBuilder(); MatchQueryBuilder MatchQueryBuilder=新的MatchQueryBuilder(“\u id”,id); searchSourceBuilder.query(matchQueryBuilder); searchRequest.source(searchSourceBuilder); //发送请求 SearchResponse SearchResponse=null; 试一试{ searchResponse=restHighLevelClient.search(searchRequest); logger.info(“响应-->”+搜索响应); }捕获(IOE异常){ e、 getLocalizedMessage(); } //阅读回复 字符串productName=null; Product=null; SearchHit[]searchHits=searchResponse.getHits().getHits(); for(SearchHit:searchHits){ //以地图的形式获得每一次命中 Map sourceAsMap=hit.getSourceAsMap(); 产品=新产品(); product.setName(sourceAsMap.get(“name”).toString(); /*productName=(字符串)sourceAsMap.get(“名称”)*/ } Gson Gson=新的Gson(); JSONObject productJSON=null; 字符串prodStr=gson.toJson(产品); 试一试{ productJSON=新的JSONObject(prodStr); }捕获(JSONException e){ e、 printStackTrace(); } 返回产品JSON; }
您不需要将产品转换为JSONObject,因为Spring Boot会自动进行序列化。只需将方法返回类型更改为
Product
,并直接返回
Product


示例和指南:

Supery。。。!。,我不知道这个。。。谢谢你。