GSON 将字符串值转换为 null
GSON converting a string value into null
我向 API 发送请求并使用 GSON 将其转换为对象。
然后我通过 Bundle
传递它并作为 JSON
String
传递它。
问题是,在我通过捆绑包传递它之前,该值看起来不错,但是当我在下一个 activity 中收到捆绑包时,该值就是 Null
这里似乎有什么问题?我猜 GSON
在解析信息时遇到了一些问题。
这是我在 运行 通过捆绑包传递字符串键之前看到的。
这是我通过捆绑包后看到的
我使用以下代码通过包传递它:
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 返回路径的错误字符串,至少这些东西在我这边运行良好。
我向 API 发送请求并使用 GSON 将其转换为对象。
然后我通过 Bundle
传递它并作为 JSON
String
传递它。
问题是,在我通过捆绑包传递它之前,该值看起来不错,但是当我在下一个 activity 中收到捆绑包时,该值就是 Null
这里似乎有什么问题?我猜 GSON
在解析信息时遇到了一些问题。
这是我在 运行 通过捆绑包传递字符串键之前看到的。
这是我通过捆绑包后看到的
我使用以下代码通过包传递它:
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 返回路径的错误字符串,至少这些东西在我这边运行良好。