如何在 org.json.JSONObject(Object) 中忽略字段

5

我正在使用org.json库。 我正在创建一个JSONObject,代码如下:

Geometry geometry = new Geometry(); 
JSONObject featureObject = new JSONObject(geometry);

我该如何让 JSONObject 忽略 Geometry 对象中的一个或多个字段?我尝试过使用 @Transient,但没有起作用。

你不能使用 JSONObject.remove() 吗? - Xander
3个回答

7

同时,在 org.json 库中也有一个注解。

@JSONPropertyIgnore


6
我发现的解决方法是更改getter方法的名称。
我将其从getFieldName()更改为retrieveFieldName(), 这会导致JSONObject忽略它。
不过,正如@kolejnik所说,最好切换到更好的json库。

3

如您在源代码中所看到的,被JSONObject(Object object)使用的populateMap方法不支持序列化中的任何异常。

有一个public JSONObject(Object object, String names[])方法,但它仅适用于公共字段。

我建议使用更强大的JSON解析库,如Gson或Jackson。Gson省略瞬态字段,Jackson具有@JsonIgnore注释以忽略getter方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接