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

2022-08-31 09:09:12

在 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对象,如下所示,

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

最简单的选择是杰克逊

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

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