Minulla on merkkijonomuuttuja nimeltä jsonString
:
{"phonetype":"N95","cat":"WP"}
Nyt haluan muuntaa sen JSON-olioksi. Etsin lisää Googlesta, mutta en saanut mitään odotettuja vastauksia....
Käyttää org.json -kirjastoa:
try {
JSONObject jsonObject = new JSONObject("{\"phonetype\":\"N95\",\"cat\":\"WP\"}");
}catch (JSONException err){
Log.d("Error", err.toString());
}
Voit käyttää google-gson
. Yksityiskohdat:
Objekti Esimerkkejä
class BagOfPrimitives {
private int value1 = 1;
private String value2 = "abc";
private transient int value3 = 3;
BagOfPrimitives() {
// no-args constructor
}
}
(Serialisointi)
BagOfPrimitives obj = new BagOfPrimitives();
Gson gson = new Gson();
String json = gson.toJson(obj);
==> json is {"value1":1,"value2":"abc"}
Huomaa, että et voi sarjallistaa objekteja, joissa on ympyräviittauksia, koska se johtaa äärettömään rekursioon.
(Deserialisointi)
BagOfPrimitives obj2 = gson.fromJson(json, BagOfPrimitives.class);
==> obj2 is just like obj
Toinen esimerkki Gsonista:
Gson on helppo oppia ja toteuttaa, sinun tarvitsee vain tuntea seuraavat kaksi metodia:
-> toJson() - muuntaa java-olion JSON-muotoon.
-> fromJson() - muuntaa JSON-muodon java-olioksi.
import com.google.gson.Gson;
public class TestObjectToJson {
private int data1 = 100;
private String data2 = "hello";
public static void main(String[] args) {
TestObjectToJson obj = new TestObjectToJson();
Gson gson = new Gson();
//convert java object to JSON format
String json = gson.toJson(obj);
System.out.println(json);
}
}
Output
{"data1":100,"data2":"hello"}
Resurssit:
JSON-kotisivulta on linkitetty erilaisia Java JSON-serialisaattoreita ja -deserialisaattoreita.
Tätä kirjoitettaessa näitä on 22:
...mutta tietysti luettelo voi muuttua.