Έχω μεταβλητή String με όνομα jsonString
:
{"phonetype":"N95","cat":"WP"}
Τώρα θέλω να τη μετατρέψω σε αντικείμενο JSON. Έψαξα περισσότερο στο Google αλλά δεν πήρα καμία αναμενόμενη απάντηση...
Χρήση της βιβλιοθήκης org.json:
try {
JSONObject jsonObject = new JSONObject("{\"phonetype\":\"N95\",\"cat\":\"WP\"}");
}catch (JSONException err){
Log.d("Error", err.toString());
}
Μπορείτε να χρησιμοποιήσετε το google-gson
. Λεπτομέρειες:
Παραδείγματα αντικειμένων
class BagOfPrimitives {
private int value1 = 1;
private String value2 = "abc";
private transient int value3 = 3;
BagOfPrimitives() {
// no-args constructor
}
}
(Serialization)
BagOfPrimitives obj = new BagOfPrimitives();
Gson gson = new Gson();
String json = gson.toJson(obj);
==> json is {"value1":1,"value2":"abc"}
Σημειώστε ότι δεν μπορείτε να σειριοποιήσετε αντικείμενα με κυκλικές αναφορές, καθώς αυτό θα οδηγήσει σε άπειρη αναδρομή.
(Deserialization)
BagOfPrimitives obj2 = gson.fromJson(json, BagOfPrimitives.class);
==> obj2 is just like obj
Άλλο ένα παράδειγμα για το Gson:
Το Gson είναι εύκολο να το μάθετε και να το εφαρμόσετε, πρέπει να γνωρίζετε μόνο τις ακόλουθες δύο μεθόδους:
-> toJson() - μετατροπή αντικειμένου java σε μορφή JSON
-> fromJson() - μετατροπή του JSON σε αντικείμενο java
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);
}
}
Έξοδος
{"data1":100,"data2":"hello"}
Πηγές:
Υπάρχουν διάφοροι σειριοποιητές και αποδιαταξινομητές Java JSON που συνδέονται με την αρχική σελίδα JSON.
Από τη στιγμή που γράφονται αυτές οι γραμμές, υπάρχουν οι εξής 22:
<ul>,
JSON-java. JSONUtil.jsonp.Json-lib.Stringtree.SOJO.json-taglib.Flexjson.Argo.jsonij.fastjson.mjson.jjson.json-simple.json-io.google-gson.FOSS Nova JSON.Corn CONVERTER.Apache johnzon.Genson.cookjson.progbase....αλλά φυσικά ο κατάλογος μπορεί να αλλάξει.