Gson превращает массив объектов данных в json – Android

В настоящее время я работаю над собственным андроидным приложением с интерфейсом webView.

У меня есть что-то вроде:

public class dataObject { int a; String b; } 

и в деятельности,

Я создал массив dataObject, скажем, dataObject x [5];

Теперь я хочу передать эти 5 dataObject в свой веб-интерфейс javascript как JSON в функции обратного вызова.

Я просмотрел интернет, похоже, что большинство учебников рассказывают о том, как конвертировать fromJson() . О toJson() не так много. Я нашел тот, который научил меня, что dataObject.toJson() будет работать.

Но как я могу передать все 5 dataObjects?

Вот подробный пример того, как использовать Gson со списком объектов. Это должно точно показать , как конвертировать в / из Json, как ссылаться на списки и т. Д.

Test.java :

 import com.google.gson.Gson; import java.util.List; import java.util.ArrayList; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; public class Test { public static void main (String[] args) { // Initialize a list of type DataObject List objList = new ArrayList(); objList.add(new DataObject(0, "zero")); objList.add(new DataObject(1, "one")); objList.add(new DataObject(2, "two")); // Convert the object to a JSON string String json = new Gson().toJson(objList); System.out.println(json); // Now convert the JSON string back to your java object Type type = new TypeToken>(){}.getType(); List inpList = new Gson().fromJson(json, type); for (int i=0;i 

И, наконец, запустить его:

 java -cp "gson-2.1.jar:." Test 

Обратите внимание: если вы используете Windows, вам придется переключать : с ; в предыдущих двух командах.

После запуска вы увидите следующий вывод:

 [{"a":0,"b":"zero"},{"a":1,"b":"one"},{"a":2,"b":"two"}] a = 0, b = zero a = 1, b = one a = 2, b = two 

Имейте в виду, что это только программа командной строки, чтобы продемонстрировать, как она работает, но те же принципы применяются в среде Android (ссылка на jar libs и т. Д.),

Моя версия десериализации списка gson с использованием вспомогательного classа:

 public List getList(Class type, JSONArray json) throws Exception { Gson gsonB = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create(); return gsonB.fromJson(json.toString(), new JsonListHelper(type)); } public class JsonListHelper implements ParameterizedType { private Class wrapped; public JsonListHelper(Class wrapped) { this.wrapped = wrapped; } public Type[] getActualTypeArguments() { return new Type[] {wrapped}; } public Type getRawType() { return List.class; } public Type getOwnerType() { return null; } } 

Применение

 List objects = getList(Object.class, myJsonArray); 
  • Как запустить Java-приложение с помощью файла .bat
  • Как включить Spongy Castle JAR в Android?
  • remove () в списке, созданном с помощью Arrays.asList () throws UnsupportedOperationException
  • Добавить файл свойств в путь classа IntelliJ
  • Проблема при использовании пользовательского шрифта - «родной шрифт не может быть создан»
  • Как перемешать символы в строке
  • READ_EXTERNAL_STORAGE разрешение для Android
  • Попытка чтения с консоли в Java
  • Ошибка: выполнение выполнено для задачи ': app: processDebugResources'. > java.io.IOException: не удалось удалить папку "" в андроид-студии
  • Как я могу реализовать пользовательскую панель действий с пользовательскими кнопками в Android?
  • Показать Анимированный GIF
  • Давайте будем гением компьютера.