Имам променлива 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
}
}
(Сериализация)
BagOfPrimitives obj = new BagOfPrimitives();
Gson gson = new Gson();
String json = gson.toJson(obj);
==> json is {"value1":1,"value2":"abc"}
Имайте предвид, че не можете да сериализирате обекти с кръгови препратки, тъй като това ще доведе до безкрайна рекурсия.
(Десериализация)
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"}
Ресурси:
Начална страница на проекта Google Gson
Съществуват различни сериализатори и десериализатори на Java JSON, към които има връзка от началната страница на JSON.
Към момента на написване на тази статия има тези 22:
...но, разбира се, списъкът може да се промени.