当前位置: 首页 > 知识库问答 >
问题:

使用rest和spring以及嵌套json

戚正业
2023-03-14

我按照http://spring.io/guides/gs/consulting-rest/使用rest服务。本教程只提到一个单层JSON文件。但是,我希望解析一个json

Foo: {
 fooz: 'stringdescripoers}
 bar : {
    baz: "something",
    etc: [[1,2],[2,0]]
  },
{another object like bar},
{etc}
}
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;

public class Application {

    public static void main(String args[]) {
        RestTemplate restTemplate = new RestTemplate();
        FeatureCollection collection = restTemplate.getForObject("http://www.trafficlink-online.nl/trafficlinkdata/wegdata/TrajectSensorsNH.GeoJSON", FeatureCollection.class);
        System.out.println("it worked");
    }
}
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public class FeatureCollection {

    private String type;

    public String getType() {
        return type;
    }
}

当我通过spring-boot run运行该命令时,我在命令行中得到以下结果:

tons of info,


[INFO] Attaching agents: []
14:54:02.566 [main] DEBUG o.s.web.client.RestTemplate - Created GET request for "http://www.trafficlink-online.nl/trafficlinkdata/wegdata/TrajectSensorsNH.GeoJSON"
14:54:02.634 [main] DEBUG o.s.web.client.RestTemplate - Setting request Accept header to [application/json, application/*+json]
14:54:02.719 [main] DEBUG o.s.web.client.RestTemplate - GET request for "http://www.trafficlink-online.nl/trafficlinkdata/wegdata/TrajectSensorsNH.GeoJSON" resulted in 200 (OK)
Exception in thread "main" org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class FeatureCollection] and content type [text/plain;charset=UTF-8]
        at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:108)
        at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:795)
        at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:779)
        at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:559)
        at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:512)
        at org.springframework.web.client.RestTemplate.getForEntity(RestTemplate.java:268)
        at Application.main(Application.java:13)

有什么我没看到的吗?

共有1个答案

羊舌和安
2023-03-14
Could not extract response: no suitable HttpMessageConverter found for response type [class FeatureCollection] and content type [text/plain;charset=UTF-8]

检查您的依赖项,看看是否有Jackson消息转换器在那里。您需要将所使用的JSON转换为Java对象。如果它在您的依赖项中比我想的要好,如果您在主类之上使用@SpringBootApplication,Spring会自动将您正在使用的JSON转换为Java对象。

在eclipse中,尝试转到New-->Spring starter Project-->并选择web,也许还有rest,然后使用该项目使用rest。

 类似资料:
  • 假设我有两种资源:手推车和物品。项目可以嵌套在购物车内,也可以不嵌套在购物车内: 在REST约定中,购物车中的同一项目和购物车中的同一项目是不同的资源吗?

  • 我正在努力理解如何在REST中处理嵌套资源。 例如,如果我有一个名为cities的表,另一个名为companies的表具有外键约束(某个城市中存在一家公司),那么当有人获得一个城市时,我是否也应该发送该城市中所有公司的列表?如果是这样,如果他们在特定城市(城市/55)上放置,并且存在嵌套的公司集合,我是否也会更新嵌套的公司? 或者删除怎么样?我是逐级删除一个城市中的所有公司,还是只是暂时将他们所在

  • 问题内容: 在我的应用程序中,有多个步骤,其中将通过多种方法对数据库进行多次提交。例: A呼叫B,再呼叫C。然后B呼叫D。D呼叫E,依此类推。所有这些方法都有一些数据库操作。据我了解(声明式事务管理- 春天推荐的方式),如果 E* 成功完成,则事务(以及 E中的 操作将被提交)。现在,由于某些例外, F 应该导致回滚。我想 从 A 做起的 所有事情都 回滚。是否可以通过声明式事务管理?还是应该使用

  • 我正在寻找HAL中嵌套_embedded如何使用Spring HATEOAS API编程的例子。最佳实践是什么? 下面是我想要实现的一个例子:

  • 问题内容: 我正在尝试在Jetty上构建一个api服务器。 我想在看起来像/ apis / api1 / endpoint,/ apis / api2 / endpoint,/ apis / api3 / endpoint等的路由上拥有多个api 本质上,我有一个HandlerWrapper,其中包含ContextHandlerCollections的HandlerList,实际上它只是在执行以下

  • 我被困在将嵌套JS与宇宙数据库核心SQL API集成上。我知道有一个用于 Cosmos DB 的模块(https://github.com/nestjs/azure-database),但我需要数据架构来支持嵌套的 json,如下所示: 我认为@nestjs/azure-database不支持这一点(或者我可能错了),因为当我检查他们的示例和quickstart时,没有这样的json模式的示例。