Android-从Intent读取数组并将其添加到JsonObject

时间:2018-11-28 23:45:18

标签: android json

在我的一个库中说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。如何直接向其中添加数组?

1 个答案:

答案 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);