RestTemplate kann nicht abgerufen JSONObject
Kann ich nicht Holen JSONObject Volltreffer, dieser code funktioniert:
RestTemplate restTemplate = new RestTemplate();
String str = restTemplate.getForObject("http://127.0.0.1:8888/books", String.class);
JSONObject bookList = new JSONObject(str);
aber dieser code nicht:
JSONObject bookList = restTemplate.getForObject("http://127.0.0.1:8888/books", JSONObject.class);
Was das problem sein könnte? Es gibt nicht die Fehler, sondern ich habe eine leere JSONObject am Ende.
meine pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>library-client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>LibraryClient</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
und ich muss hinzufügen, ein bisschen mehr details, die Sie sehen können, wenn ich mit einem string zu casten dazwischen funktioniert es. und ein bisschen mehr details, vielleicht sollte ich meine löschen pom.xml zu reduzieren die Menge an code in dieser Frage, würde das Sinn machen? | Okay mehr?
- Sind Sie versuchen, zu Lesen eine XML-Datei mit einem Objekt, der erwartet, dass aus einer JSON-formatierten source?
Du musst angemeldet sein, um einen Kommentar abzugeben.
RestTemplate wird reflektion verwenden, um das resultierende Objekt
Wenn Sie
restTemplate.getForObject
es wird versuchen, den default-Konstruktor der Klasse übergeben und es wird dann versucht, zu füllen alle seine FelderIn diesem Fall kommt es nicht wissen, wie Sie die
JSONObject
Um es zu tun müssen Sie:
HttpMessageConverterExtractor
JSONObject bookList = new
JSONObject(str);