在Java ME中将JSON字符串转换为对象?

问题

Java / J2ME中是否有一种转换字符串的方法,例如:

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

在一行代码中的内部Object表示形式?

因为当前的方法太繁琐了:

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

也许是一个JSON库?


#1 热门回答(107 赞)

我用过其中的一些,我最喜欢的是,
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"));

#2 热门回答(78 赞)

最简单的选择是566264648:

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

还有其他类似的简单易用的库(已经提到了Gson);但是有些选择比较原始的org.json库更加费力,即使你不需要它们也需要你创建中间的"JSONObject"。


#3 热门回答(60 赞)

GSON是将java对象转换为json对象的一个​​很好的选择,反之亦然。
它是谷歌提供的工具。

用于将json转换为java对象的用法:fromJson(jsonObject,javaclassname.class)
用于将java对象转换为json对象的用法:toJson(javaObject)
休息将自动完成

更多information and for download