Variablen HttpResponse.getBody() wird automatisch org.json Object und kann nicht zu json.simple Object gecastet werden?

Diskutiere HttpResponse.getBody() wird automatisch org.json Object und kann nicht zu json.simple Object gecastet werden? im Java Basics - Anfänger-Themen Bereich.
P

PinkMuffin

Hallo,
also, meine httpResponse (response)
Code:
        HttpResponse<JsonNode> response = (HttpResponse<JsonNode>) Unirest.get("http://url/rest/api/latest/project/projectID/worklog")
                .header("authorization", "Basic TbmRlcg==")
                .header("cache-control", "no-cache")
                //.header("Accept", "application/json")
                .header("postman-token", "15b3")
                .getBody();
soll jetzt in einen JSONArray übergeben werden.
Code:
        jArray = response.getBody().getArray();
Allerdings hat response.getBody().getArray(); einen JSONArray aus org.json als Rückgabewert, obwohl ich einen json.simple brauche. Als Fehlerbehebung wird mir nur vorgeschlagen, meine Variable in org.json umzuwandeln, allerding kann und soll das nicht so gelöst werden (das ist ein ganz anderes Problem, dass ich schon einmal beschrieben hatte, allerdings habe ich da immer noch keine Lösung für gefunden).
ein (JSONArray) cast kann nicht gemacht werden, da es "Inconvertible types" sind. Weiß jemand, wie ich das umgehen kann? Woher kennt mein Programm den org.json überhaupt, wenn er weder importiert, noch in meiner pom.xml als dependency deklariert ist?

LG Lena
 
P

PinkMuffin

Nachtrag: Für den Fall, dass es relevant ist:
Code:
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.JsonNode;
import com.mashape.unirest.http.Unirest;
import com.mashape.unirest.http.exceptions.UnirestException;
import org.json.simple.JSONArray;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import java.io.IOException;
import java.util.ArrayList;
Das sind die Bibliotheken, aus denen ich die Klassen nehme. Im Internet finde ich nämlich hauptsächlich informationen zur JsonNode von Jackson.
 
L

LimDul

Das wirst du über eine transitive Dependency reinbekommen. Kann man in Eclipse z.B. sehen wenn in der pom auf die dependency Hierarchy geht sehen.

Ohne Gewähr: In dem Modul, was die als transitive Dependency mitbringt die excluden. Setzt aber voraus, das json.simple von dem Modul als Alternative unterstützt wird.
 
P

PinkMuffin

Das wirst du über eine transitive Dependency reinbekommen. Kann man in Eclipse z.B. sehen wenn in der pom auf die dependency Hierarchy geht sehen.
Du hattest mit der Vermutung Recht, ich bekomme org.json.json tatsächlich über unirest rein. Jetzt hab ich es excluded, aber da maven jetzt Fehler ausgibt, weil er org.json nicht aufrufen kann (da exkludiert) vermute ich mal, dass json.simple tatsächlich nicht unterstützt wird.
Ich habe es jetzt in der Pom meines Projektes excluded, in der Pom von unirest habe ich mich nicht getraut, etwas zu ändern, meine eigene Pom sieht also so aus:
Code:
        <dependency>
            <groupId>com.mashape.unirest</groupId>
            <artifactId>unirest-java</artifactId>
            <version>1.4.9</version>
            <exclusions>
                <exclusion>
                    <groupId>org.json</groupId>
                    <artifactId>json</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
Gibt es da was anderes, was man noch machen kann? Weil mir gehen langsam die Ideen aus. org.json lässt sich nicht benutzen (wenn ich es nicht exclude) und wenn ich es exclude, geht mein json.simple nicht mehr..
 
Zuletzt bearbeitet:
L

LimDul

Nutz org.json mit unirest und wirf unirest weg und nutz was, was json.simple nutzt.

Oder schreib einen Konverter der die Daten konvertiert (org.json => String => json.simple parsen).
 
P

PinkMuffin

Nutz org.json mit unirest und wirf unirest weg und nutz was, was json.simple nutzt.

Oder schreib einen Konverter der die Daten konvertiert (org.json => String => json.simple parsen).
Damit wäre ich wieder beim alten Problem: Der Maven-compiler hat keine Probleme, aber sobald ich auf "run" klicke, kommt wieder "Java: package.org.json does not exist. Daher kann ich es nicht umwandeln. Ich hab wohl die Wahl zwischen OKhttp und unirest und die scheinen beide wieder kein json.simple zu nehmen 😬
 
X

X5-599

Oder vielleicht wie hier: HttpResponse nicht als JsonNode sondern als String geben lassen und selber mit dem org.json.simple.parser.JSONParser parsen
 
Thema: 

HttpResponse.getBody() wird automatisch org.json Object und kann nicht zu json.simple Object gecastet werden?

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben