在我的一个库中说libA时,我正在从JsonObject读取JsonArray(其中包含字符串值)并将其转换为String [],然后再将其添加到意图中,然后将该意图传递给另一个活动说活动A.我正在从activityA的意图中读取内容,并从中创建一个JsonObject以便以后使用,但无法将数组直接添加到JsonObject中。
libA中的代码:
JsonObject metadata; // This has the JsonArray in it.
final String[] bookIdsArray = new Gson().fromJson(metadata.get("bookIds") , String[].class);
testIntent.putExtra("bookIds", bookIdsArray);
活动A中的代码:
final JsonObject activityMetadata = new JsonObject();
activityMetadata.addProperty("bookIds", String.valueOf(intent.getStringArrayExtra("bookIds")));
JsonObject的addProperty方法仅接受String,Number,Boolean或Character,另一种名为“ add”的方法仅接受JsonElement。如何直接向其中添加数组?
答案 0 :(得分:0)
在add(String property, JsonElement value)
扩展JsonArray
时使用JsonObject方法JsonElement
。
String[] idsFromIntent = intent.getStringArrayExtra("bookIds");
JsonArray bookIds = new JsonArray();
for (String id : idsFromIntent) {
bookIds.add(id);
}
activityMetadata.add("bookIds", bookIds);