【问题标题】:Android - Reading an array from intent and adding it to JsonObjectAndroid - 从意图读取数组并将其添加到 JsonObject
【发布时间】:2018-11-28 23:45:17
【问题描述】:

在我的一个库中说 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);

activityA 中的代码:

final JsonObject activityMetadata = new JsonObject();
activityMetadata.addProperty("bookIds", String.valueOf(intent.getStringArrayExtra("bookIds")));

JsonObject 的addProperty 方法只接受String、Number、Boolean 或Character,另一个叫做'add' 的方法只接受JsonElement。如何直接添加数组?

【问题讨论】:

标签: android json


【解决方案1】:

使用 JsonObject 方法 add(String property, JsonElement value) 作为 JsonArray 扩展 JsonElement

String[] idsFromIntent = intent.getStringArrayExtra("bookIds");
JsonArray bookIds = new JsonArray();
    for (String id : idsFromIntent) {
        bookIds.add(id);
    }
activityMetadata.add("bookIds", bookIds);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多