我有一个方法可以解析两个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包围!
希望这是您要寻找的。