GSON 将字符串值转换为 null

GSON converting a string value into null

我向 API 发送请求并使用 GSON 将其转换为对象。

然后我通过 Bundle 传递它并作为 JSON String 传递它。

问题是,在我通过捆绑包传递它之前,该值看起来不错,但是当我在下一个 activity 中收到捆绑包时,该值就是 Null

这里似乎有什么问题?我猜 GSON 在解析信息时遇到了一些问题。

这是我在 运行 通过捆绑包传递字符串键之前看到的。

http://XXXXXXXX.XXXXXX.com/%7B%7BSIZE%7D%7D-290x116.jpg

这是我通过捆绑包后看到的

http://XXXXXXXX.XXXXXX.com/null

我使用以下代码通过包传递它:

Bundle bundle = new Bundle();
        Gson gson = new Gson();
        bundle.putString("my_model", gson.toJson(searchResult, ModelClass.class));
        i.putExtras(bundle);
        startActivity(i);

这是我用来将 JSON 转换回对象的代码:

Bundle bundle = getIntent().getExtras();
    if (bundle != null) {
        String myModelJSON = bundle.getString("my_model");
        Gson gson = new Gson();
        mMyModel = gson.fromJson(myModelJSON, MyModel.class);=
    }

注意末尾的空值

我该如何解决这个问题?如果没有成功,我正在考虑使用 Parcelable

编辑:

使用休息客户端应用程序的回复表单API:

"image_path": "/uploads/image/image02-%7B%7BSIZE%7D%7D-290x116.jpg"

问题似乎是我通过包传递的对象本身包含对象列表,似乎 GSON 在将其转换回其 POJO 对象时遇到问题所以我只是抓住了列表并像这样通过了那些:

bundle.putString("list", gson.toJson(myModelObject.getList()));

然后在下一个 activity 我像这样抓取列表:

Gson gson = new Gson();

// Get List
Type typeEntityListObject = new TypeToken<List<ListObject>>(){}.getType();
mList = gson.fromJson(bundle.getString("list"), typeEntityListObject);

现在它不再 return Null 但正如上面有人指出的那样 API 是 return 返回路径的错误字符串,至少这些东西在我这边运行良好。