Вопрос-ответ

Convert a JSON string to object in Java ME?

Преобразовать строку JSON в object в 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?

Переведено автоматически
Ответ 1

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

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

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

Вы можете преобразовать JSON в Java object в одной строке следующим образом,

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"));
Ответ 2

Самый простой вариант - Jackson:

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

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

Ответ 3

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

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

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

Ответ 4

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

Допустим, у вас есть класс с именем 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 /

java json serialization