Wie konvertieren von int-Array zu JSON-String in Android?
Ich erwartet zu finden, diese Frage herum, aber ich konnte nicht. Vielleicht bin ich Googeln die falsche Sache.
Habe ich eine primitive integer-array (int[]
), und ich möchte zu konvertieren, das in einem String
, das ist "JSON-parse-fähige", umgewandelt werden, um wieder den gleichen int[]
.
Was habe ich versucht :
Ich habe versucht, diesen code :
//int[] image_ids_primitive = ...
JSONArray mJSONArray = new JSONArray(Arrays.asList(image_ids_primitive));
String jSONString = mJSONArray.toString();
Prefs.init(getApplicationContext());
Prefs.addStringProperty("active_project_image_ids", jSONString);
//Note: Prefs is a nice Class found in StackOverflow, that works properly.
Wenn ich die gedruckten jSONString
variable hat den Wert : ["[I@40558d08"]
in der Erwägung, erwartete ich eine korrekte JSON-String so : {"1" : "424242" , "2":"434343"}
nicht sicher über die Anführungszeichen, aber Sie bekommen die Idee.
Der Grund, warum ich dies tun möchten :
Ich will zu verfolgen, lokale Bilder (im drawable-Ordner), also ich Speichere Ihre id ' s in der int-array, dann will ich speichern und das array, in form eines JSON-Strings, die später analysiert durch eine andere Tätigkeit. Und ich weiß, ich kann erreichen, das mit Absicht extras. Aber ich habe es zu tun mit SharedPreferences.
Vielen Dank für jede Hilfe!!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie nicht instanziieren, die JSONArray mit Arrays.asList. Es kann eine normale primitive-array.
Versuchen
JSONArray mJSONArray = new JSONArray(image_ids_primitive);
Wenn Sie über eine API level unter 19, eine einfache Methode wäre einfach eine Schleife über das int-array und Sie stellen.
Quelle: Android-Entwickler, doc
java.lang.NoSuchMethodError: org.json.JSONArray.<init>
Bearbeiten: ich denke, dass der Konstruktor mit(Object array)
Hinzugefügt wird in API-Level 19. So muss ich Durchlaufen und konstruieren Sie den String manuell ?mJSONArray.put(image_ids_primitive[i])
die int-Werte. Ich werde Bearbeiten Sie die Antwort.Diesem Weg versuchen
Wenn Sie möchten, dass ein JSON-array und nicht unbedingt ein Objekt, können Sie mit
JSONArray
.Alternativ für eine schnelle hack:
druckt
gültigen JSON. Wenn Sie wollen, etwas komplizierter, als dass offensichtlich
JSONObject
ist dein Freund.Dieser code wird erreichen, was Sie nach...
Dies wird Ihnen {"3" : "203", "2" : "200", "1": "100", "4": "4578"} als Zeichenfolge.
Nicht genau sicher, warum Ihr nicht in der genauen Reihenfolge, aber die Sortierung durch einen Schlüssel ist ganz einfach.