Есть ли способ в 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?
java
json
java-me
serialization
Вспышка
источник
источник
{"name":"MyNode", "width":200, "height":100}
Ответы:
Я использовал несколько из них, и мой любимый -
http://code.google.com/p/json-simple/
Библиотека очень мала, поэтому идеально подходит для J2ME.
Вы можете разобрать JSON на объект Java в одной строке, например:
источник
Самый простой вариант - Джексон :
Есть и другие, не менее простые в использовании библиотеки (Gson уже упоминался); но некоторые варианты более трудоемки, например оригинальная библиотека org.json, которая требует от вас создания промежуточного объекта «JSONObject», даже если он вам не нужен.
источник
Object obj = new ObjectMapper().readValue("[1, 2, 3]", Object.class);
GSON - хороший вариант для преобразования объекта java в объект json и наоборот.
Это инструмент, предоставленный Google.
для преобразования json в использование объекта java:
fromJson(jsonObject,javaclassname.class)
для преобразования объекта java в использование объекта json:
toJson(javaObject)
а остальное будет выполнено автоматически
Для получения дополнительной информации и для скачивания
источник
Вы можете легко сделать это с помощью Google GSON.
Допустим, у вас есть класс с именем User с полями user, width и height, и вы хотите преобразовать следующую строку json в объект User.
{"name":"MyNode", "width":200, "height":100}
Вы можете легко сделать это, не выполняя приведения (помня о комментарии nimcap;)), с помощью следующего кода:
Где 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 в потоки.
JSONTokener.java
JSONTokener берет исходную строку и извлекает из нее символы и токены. Он используется конструкторами JSONObject и JSONArray для анализа исходных строк JSON.
JSONException.java Исключение
JSONException возникает при обнаружении синтаксической или процедурной ошибки.
JSONString.java
JSONString - это интерфейс, который позволяет классам реализовать свою сериализацию JSON.
источник
java
классы.Вам следует посмотреть официальный сайт JSON . Он предоставляет различные библиотеки , которые могут быть использованы с Java, я лично использовал этот один, JSON-Lib , который является осуществлением работы на месте, поэтому он имеет точно такой же класс - методы и т.д. в этой странице .
Если щелкнуть там HTML-ссылки, вы сможете найти все, что захотите.
Коротко:
чтобы создать объект json и массив json, код:
o1, o2, могут быть примитивными типами (long, int, boolean), String или Arrays.
Обратный процесс довольно прост, я имею в виду преобразование строки в объект / массив json.
Для правильного анализа вам просто нужно знать, анализируете ли вы массив или объект.
источник
Используйте для этого библиотеку google GSON
http://iandjava.blogspot.in/2014/01/java-object-to-json-and-json-to-java.html
источник
Как уже было сказано, довольно простой способ сделать это с помощью JSON.simple, как показано ниже.
А затем используйте jsonObj для работы с объектом JSON. например, jsonObj.get ("имя");
Согласно приведенной ниже ссылке, JSON.simple показывает постоянную эффективность как для маленьких, так и для больших файлов JSON.
http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/
источник
JSON IO - это, безусловно, самый простой способ преобразовать строку JSON или входной поток JSON в объект Java.
Строка в объект 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/, которые сравнивают.
источник
Помимо www.json.org, вы также можете реализовать свой собственный синтаксический анализатор, используя javacc и соответствующий вашей личной грамматике / схеме. См. Эту заметку в моем блоге: http://plindenbaum.blogspot.com/2008/07/parsing-json-with-javacc-my-notebook.html
источник
Я написал библиотеку, которая использует json.org для анализа JSON, но на самом деле она создаст для вас прокси-сервер интерфейса. Код / JAR находится на code.google.com.
http://fixjures.googlecode.com/
Не знаю, работает ли это на J2ME. Поскольку он использует Java Reflection для создания прокси, я думаю, что это не сработает. Кроме того, в настоящее время он сильно зависит от коллекций Google, которые я хочу удалить, и, вероятно, он слишком тяжел для ваших нужд, но позволяет вам взаимодействовать с вашими данными JSON так, как вы ищете:
источник
Просто создайте объект Json в java со следующей строкой Json. В вашем случае
если это ваша строка Json, просто создайте с ней объект Json.
источник
Jackson для больших файлов, GSON для маленьких файлов и JSON.simple для обработки обоих.
источник