我有一个方法可以解析两个JsonElement之间的差异,然后返回一个JsonElement,该JsonElement表示仅包含两个元素之间的差异的对象。

然后,我尝试通过API PUT请求发送返回的JsonElement并一般地将响应解析为对象类型。问题是Json解析为JsonElement且其所有内容之前均带有members标记。

例如:

{"members":{"id":1172327,"assets":[{"id":436379,"licenseState":"MI","odometer":"12345"}]}}


我该如何从JsonElement.getAsJsonObject()删除members标记。我希望不要手动进行。我尝试了JsonElement,但失败了。我还尝试将JsonArray用作JsonElement.getAsJsonArray().get(0)JsonElement),但这失败了,因为JsonArray不是。

最佳答案

import org.json.JSONObject;

/** Assuming json_string is your json string **/

JSONObject jsonObj = new JSONObject(json_string);

JSONObject jsonMembers = jsonObj.getJSONObject("members");

//will return "{"id":1172327,"assets":[{"id":436379,"licenseState":"MI","odometer":"12345"}]}"
Log.d("Members only:",String.valueOf(jsonMembers));


注意:如果不是有效的json,请确保用try / catch包围!

希望这是您要寻找的。

09-09 21:35