Преобразование строки JSON в объект в Java ME?

Есть ли способ в Java / J2ME преобразовать строку, например:

{name:"MyNode", width:200, height:100} 

к внутреннему представлению объекта того же, в одной строке кода?

Поскольку текущий метод слишком утомительный:

 Object n = create("new"); setString(p, "name", "MyNode"); setInteger(p, "width", 200); setInteger(p, "height", 100); 

Может быть, библиотека JSON?

Я использовал несколько из них, и мой любимый,

http://code.google.com/p/json-simple/

Библиотека очень маленькая, поэтому она идеально подходит для J2ME.

Вы можете разобрать JSON на объект Java в одной строке, как это,

 JSONObject json = (JSONObject)new JSONParser().parse("{\"name\":\"MyNode\", \"width\":200, \"height\":100}"); System.out.println("name=" + json.get("name")); System.out.println("width=" + json.get("width")); 

Самый простой вариант – jackson :

 MyObject ob = new ObjectMapper().readValue(jsonString, MyObject.class); 

Существуют и другие аналогичные простые в использовании библиотеки (уже упоминался Gson); но некоторые варианты более трудоемки, например, оригинальная библиотека org.json, которая требует от вас создания промежуточного «JSONObject», даже если вам это не нужно.

GSON – хороший вариант для преобразования java-объекта в объект json и наоборот.
Это инструмент, предоставляемый google.

для преобразования json в использование java-объекта: fromJson(jsonObject,javaclassname.class)
для преобразования java-объекта в json-объект: toJson(javaObject)
и rest будет выполнен автоматически

Для получения дополнительной информации и для загрузки

Вы можете сделать это легко с помощью Google GSON.

Допустим, у вас есть class User с поля user, width и height, и вы хотите преобразовать следующую строку json в объект User.

{"name":"MyNode", "width":200, "height":100}

Вы можете легко сделать это, без необходимости бросать (сохраняя комментарий пользователя nimcap;)), со следующим кодом:

 Gson gson = new Gson(); final User user = gson.fromJson(jsonString, User.class); 

Где jsonString – приведенная выше строка JSON.

Дополнительную информацию см. На странице https://code.google.com/p/google-gson/.

У вас много парсеров JSON для Java :

  • JSONObject.java
    JSONObject – это неупорядоченный набор пар имя / значение. Его внешняя форма – это строка, завернутая в фигурные скобки с двоеточиями между именами и значениями и запятыми между значениями и именами. Внутренняя форма – это объект, имеющий методы get () и opt () для доступа к значениям по имени и методы put () для добавления или замены значений по имени. Значения могут быть любыми из следующих типов: Boolean, JSONArray, JSONObject, Number и String или объект JSONObject.NULL.

  • JSONArray.java
    JSONArray – упорядоченная последовательность значений. Его внешняя форма – это строка, заключенная в квадратные скобки с запятыми между значениями. Внутренняя форма – это объект, имеющий методы get () и opt () для доступа к значениям по индексу и методы put () для добавления или замены значений. Значения могут быть любыми из следующих типов: Boolean, JSONArray, JSONObject, Number и String или объект JSONObject.NULL.

  • JSONStringer.java
    JSONStringer – это инструмент для быстрого создания текста JSON.

  • JSONWriter.java
    JSONWriter – инструмент для быстрой записи текста JSON в streamи.

  • JSONTokener.java
    JSONTokener берет исходную строку и извлекает из нее символы и токены. Он используется конструкторами JSONObject и JSONArray для parsingа исходных строк JSON.

  • JSONException.java
    При обнаружении синтаксиса или процедурной ошибки возникает исключение JSONException.

  • JSONString.java
    JSONString – это интерфейс, который позволяет classам реализовывать сериализацию JSON.

На официальном сайте JSON вы должны посмотреть. Он предоставляет различные библиотеки, которые можно использовать с Java, я лично использовал этот JSON-lib, который является реализацией работы на сайте, поэтому на этой странице он имеет точно такие же методы classа и т. Д.

Если вы нажмете на html-ссылки, вы найдете все, что захотите.

Вкратце:

для создания json-объекта и json-массива, код:

 JSONObject obj = new JSONObject(); obj.put("variable1", o1); obj.put("variable2", o2); JSONArray array = new JSONArray(); array.put(obj); 

o1, o2, могут быть примитивными типами (long, int, boolean), строками или массивами.

Обратный процесс довольно прост, я имею в виду преобразование строки в json object / array.

 String myString; JSONObject obj = new JSONObject(myString); JSONArray array = new JSONArray(myString); 

Чтобы правильно разбираться, вам просто нужно знать, обрабатываете ли вы массив или объект.

Для этого воспользуйтесь библиотекой google GSON.

 public static  T getObject(final String jsonString, final Class objectClass) { Gson gson = new Gson(); return gson.fromJson(jsonString, objectClass); } 

http://iandjava.blogspot.in/2014/01/java-object-to-json-and-json-to-java.html

Как и многие уже заявленные, довольно простой способ сделать это с помощью JSON.simple, как показано ниже

 import org.json.JSONObject; String someJsonString = "{name:"MyNode", width:200, height:100}"; JSONObject jsonObj = new JSONObject(someJsonString); 

И затем используйте jsonObj для работы с объектом JSON. например jsonObj.get (“name”);

В соответствии с приведенной ниже ссылкой JSON.simple демонстрирует постоянную эффективность как для небольших, так и для больших файлов JSON

http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/

JSON IO на сегодняшний день является самым простым способом преобразования строки JSON или входного streamа JSON в объект Java

Объект String to Java
Object obj = JsonReader.jsonToJava("[\"Hello, World\"]");

https://code.google.com/p/json-io/

Это старый вопрос, и json-simple ( https://code.google.com/p/json-simple/ ) может быть хорошим решением в то время, но, пожалуйста, подумайте, что проект, похоже, не работает некоторое время!

Я предлагаю Gson, который теперь размещен по адресу: https://github.com/google/gson

Если производительность вашей проблемы, вы можете взглянуть на некоторые тесты http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/, которые сравниваются.

Помимо http://www.json.org вы также можете реализовать свой собственный парсер с помощью javacc и сопоставить свою персональную грамматику / схему. См. Эту заметку в своем блоге: http://plindenbaum.blogspot.com/2008/07/parsing-json-with-javacc-my-notebook.html

Я написал библиотеку, которая использует json.org для parsingа JSON, но она фактически создаст прокси-интерфейс для вас. Код / JAR находится на code.google.com.

http://fixjures.googlecode.com/

Я не знаю, работает ли он на J2ME. Поскольку он использует Java Reflection для создания прокси, я думаю, что это не сработает. Кроме того, в настоящее время он сильно зависит от коллекций Google, которые я хочу удалить, и, вероятно, слишком тяжелый для ваших нужд, но он позволяет вам взаимодействовать с вашими данными JSON так, как вы ищите:

 interface Foo { String getName(); int getWidth(); int getHeight(); } Foo myFoo = Fixjure.of(Foo.class).from(JSONSource.newJsonString("{ name : \"foo name\" }")).create(); String name = myFoo.getName(); // name now .equals("foo name"); 

jackson для больших файлов, GSON для небольших файлов и JSON.simple для обработки обоих.

Просто сделайте объект Json в java со следующей Json String. В вашем случае

 {name:"MyNode", width:200, height:100} 

если выше ваша строка Json, просто создайте с ним Json Object.

 JsonString ="{name:"MyNode", width:200, height:100}"; JSONObject yourJsonObject = new JSONObject(JsonString); System.out.println("name=" + yourJsonObject.getString("name")); System.out.println("width=" + yourJsonObject.getString("width")); 
  • Конвертировать словарь в JSON в Swift
  • В чем разница между Serializable и Externalizable в Java?
  • Байт для байтовой сериализации структуры в C #
  • Что и когда я должен его использовать?
  • jQuery serializeArray () пары значений ключа
  • Заменить стандартную сериализацию JSON по умолчанию WCF
  • как правильно реализовать Parcelable с ArrayList ?
  • DataContract Сериализация XML и атрибуты XML
  • Каков наилучший способ преобразования объекта java в xml с открытым исходным кодом apis
  • .NET NewtonSoft JSON десериализует карту для другого имени свойства
  • Как сериализовать объект в строку
  • Interesting Posts

    максимальный размер пакета для TCP-соединения

    Список стандартных длин для полей базы данных

    Могу ли я управлять своим собственным доменом, используя веб-сервер дома без статического IP-адреса с использованием NO-IP?

    Командная строка Jabber client

    Запрос, если firebase database Android существует!

    Быстрый базовый class Swift или NSObject

    Автоматическая пометка MP3-файлов

    Преобразование слов (строк) в Int

    Как создать базу данных Access во время выполнения на C #?

    Постановка компьютерной камеры с матрицей гомографии на основе 4 компланарных точек

    Как извлечь CN из X509Certificate в Java?

    Переименовать ': 2f' to '-' в имена папок в Linux

    CSS-таргетинг на белую страницу, отображаемую Chrome в течение секунды секунды при загрузке

    Можно ли переключаться между окнами одного типа с помощью AutoHotkey?

    Typcript: не может получить доступ к значению элемента в унаследованном конструкторе classа

    Давайте будем гением компьютера.