[ENTWICKLUNG] Json Konvertierung

  • Antworten:30
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 2.909

11.06.2017, 20:05:04 via Website

Hallo Jungs,

ich habe ein kleines Problem und komme einfach nicht auf den Trichter.

ich habe als Beispiel ein JSONObject, dass folgendes beinhaltet

   ,"url":"http:\/\/lyrics.wikia.com\/Rag%27N%27Bone_Man:Skin

nach JObject.getString("url") bekomme ich

http://lyrics.wikia.com/wiki/Rag%2527N%2527Bone_Man:Skin

Auch der Versuch mit

String url = new String(JObject.getString("url").getBytes("ISO-8859-1"), "UTF-8");

Bringt mir das gleiche Ergebnis

Irgend einer von euch eine Idee ?
P.s Im Prinzip möchte ich den String genau so haben , wie er drin steht , warum macht
mir getString die %25 rein ??

Ich danke euch für eure Mühe im Voraus

@Ludy : ich bin dran - ich muss erst den Mist vom Tisch bekommen

— geändert am 11.06.2017, 20:16:00

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

11.06.2017, 20:15:06 via Website

Moin,

hiermit sollte es klappen:

try {
        Log.e("decode", URLDecoder.decode(s, "UTF-8"));
    } catch (UnsupportedEncodingException e) {
        Log.e("decode error", e.getLocalizedMessage());
    }

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Pascal P.swa00

Antworten
  • Forum-Beiträge: 2.909

11.06.2017, 20:21:34 via Website

Ich danke Dir ,

könntest du mir ggf erklären , warum ich die %25 bekomme ??

Ergebnis nach UrlDecoder:

"url":"http:\/\/lyrics.wikia.com\/Linkin_Park_%26_Kiiara:Heavy"

ergibt

http://lyrics.wikia.com/wiki/Linkin_Park_%2526_Kiiara:Heavy

Das wars leider auch nicht :-(

— geändert am 11.06.2017, 20:25:37

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

11.06.2017, 20:27:55 via App

Das liegt daran, dass die URL doppelt encode ist.
Das Hochkomma bzw. Sonderzeichen wird vom Provider endoced, also müsstest du zweimal decoden.

— geändert am 11.06.2017, 20:30:58

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

swa00

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.183

11.06.2017, 20:37:58 via Website

Liegt aber z.t. auch am Parser.
Mit Google Gson (was ich nutze, da ich aus einem Json direkt ein Java Objekt erstellen kann), ist das kein Problem und kommt passend raus.
Gerade getestet ;)

LG Pascal //It's not a bug, it's a feature. :) ;)

swa00Ludy

Antworten
  • Forum-Beiträge: 2.909

11.06.2017, 20:39:21 via Website

@Pascal

Ahhhhhhhhhhhhh :-)

Was für einen Import hast du genommen ?

ich habe diesen dort
import org.json.JSONException;
import org.json.JSONObject;

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
  • Forum-Beiträge: 2.909

11.06.2017, 20:46:40 via Website

Ich danke euch mal , ich bastel eben um ....

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
  • Forum-Beiträge: 2.909

11.06.2017, 21:10:00 via Website

Praktisch , thx :-)

Ihr Zwei seid in der Richtung ziemlich fit drauf :-)

Liebe Grüße - Stefan
[ App - Entwicklung ]

LudyPascal P.

Antworten
  • Forum-Beiträge: 2.909

11.06.2017, 21:33:29 via Website

Die Firma Dankt - Klapp wunderbar :-)

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
  • Forum-Beiträge: 2.909

11.06.2017, 23:09:35 via Website

Jungs , noch eine Frage :

Aus dem Contentresolver bekomme ich so was hier raus ..

"Millionen Farben / Gestört aber GeiL feat"

Suche verzweifelt nach der richtigen Konvertierung

new String(ptext, "UTF-8")
new String(ptext, "ISO-8859-15")
new String(ptext, "ISO-8859-1")
URLDecoder.decode

Leider ohne Erfolg

EDIT :
So geht es
new String("Gestört aber GeiL feat".getBytes("ISO-8859-15"), "UTF-8");

— geändert am 12.06.2017, 00:07:41

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.183

12.06.2017, 05:36:34 via App

Ist die XML in UTF8? Wenn ja dürfte das garnicht erst passieren.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 2.909

12.06.2017, 06:27:06 via Website

Moin , Pascal

so kommen die Titel direkt aus dem ContentResolver ..
Also die interne DB, und dort in den CursorResults ....

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.183

12.06.2017, 06:29:53 via App

Hmm welchen Zeichensatz verwendet deine DB?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 2.909

12.06.2017, 06:34:44 via Website

öhm nicht meine Pascal :-)

Die habe ich gar nicht angelegt - das ist die System-interne DB
https://developer.android.com/reference/android/content/ContentResolver.html

und in meinem Falle ziehe ich mir die MediaFiles
String sorter = MediaStore.Audio.Media.TITLE + " ASC"
Cursur cur = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, sorter);
cur.moveFirst ......

usw

— geändert am 12.06.2017, 06:36:25

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.183

12.06.2017, 06:49:55 via App

Achso jetzt xD
Ist wohl noch zu früh heut morgen.
Naja solage es jetzt tut, ist alles OK ;)

LG Pascal //It's not a bug, it's a feature. :) ;)

swa00

Antworten
  • Forum-Beiträge: 2.909

12.06.2017, 06:53:52 via Website

Aber ich kann dich beruhigen , so richtig habe ich es immer noch nicht gelöst , denn
dieser Zeichensatz ist mir unbekannt :-)

"Ich Lass FÑŒr Dich Das Licht An"

Haste irgend eine Idee (trotz fehlendem Kaffee) ??? :-)

— geändert am 12.06.2017, 07:02:35

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten

Empfohlene Artikel