Я удивлен, что это не так. было упомянуто: но вместо использования простого, а не ручного процесса с небольшим пакетом json.org, GSon и Jackson намного удобнее в использовании. Итак:
Таким образом, вы действительно можете привязать свои собственные POJO, а не какие-то недоделанные узлы дерева или списки и карты. (и, по крайней мере, Джексон разрешает привязку к таким вещам. тоже (возможно, GSON, не уверен), JsonNode, Map, List, если вам действительно нужны эти объекты вместо «настоящих» объектов)
РЕДАКТИРОВАТЬ 19-МАР-2014:
Еще одним новым претендентом является Джексон jr : она использует тот же быстрый парсер / генератор потоковой передачи, что и Джексон ( jackson-core
), но часть привязки данных крошечная (50 КБ). Функциональность более ограничена (без аннотаций, только обычные Java Beans), но производительность должна быть быстрой, а накладные расходы на инициализацию (первый вызов) также очень низкими.
Так что это может быть хорошим выбором, особенно для небольшие приложения.
Вы можете загрузить библиотеку с http://json.org (Json-lib или org.json) и использовать ее для разбора/генерации JSON
В JSON нет ничего особенного. Фигурные скобки предназначены для «объектов» (ассоциативных массивов), а квадратные скобки - для массивов без ключей (с числовой индексацией). Что касается работы с ним в Android, для них есть готовые классы, включенные в sdk (загрузка не требуется).
Обратите внимание на эти классы: http://developer.android.com/reference/org/json/package-summary.html
Вы можете использовать org.json.JSONObject и org.json.JSONTokener . вам не нужны никакие внешние библиотеки, поскольку эти классы поставляются с Android SDK
GSON - самый простой в использовании и подходящий вариант, если данные имеют определенную структуру.
Скачать gson .
Добавьте его в указанные библиотеки.
package com.tut.JSON;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class SimpleJson extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String jString = "{\"username\": \"tom\", \"message\": \"roger that\"} ";
GsonBuilder gsonb = new GsonBuilder();
Gson gson = gsonb.create();
Post pst;
try {
pst = gson.fromJson(jString, Post.class);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
Код для почтового класса
package com.tut.JSON;
public class Post {
String message;
String time;
String username;
Bitmap icon;
}