【发布时间】:2021-09-11 03:43:10
【问题描述】:
我一直在 android studio 上开发 Java 应用程序,我想提取我存储在 google 数据存储区中的几个实体。实体存储为List<Entity> 并转换为 Json。在 Android 工作室中,我现在正在努力将字符串化实体转换回其原始版本。这是我的 Json 响应示例:
[{"properties":
{"name":
{"valueType":"STRING", "values":"nameOfEntity", ...},
"date":
{"valueType":"STRING", "values":"dateOfEntity", ...},
...
}
}]
我只需要每个属性的“值”。
有没有办法将响应转换回带有 json 的数据存储实体?
编辑: 我的代码的 sn-p
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> r) {
if(r.isSuccessful()) {
try {
for (int i = 0; i < 5; i++) {
List<String> values = null;
Gson gson = new Gson();
JSONArray array = new JSONArray(r.body().string());
JSONObject obj = array.getJSONObject(i);
String properties = obj.getString("properties");
JSONArray array2 = new JSONArray(properties);
for (int j = 0; j < array2.length(); j++) {
JSONObject obj2 = array2.getJSONObject(j);
values.add(obj2.getString("values"));
}
Toast.makeText(getActivity(), "FINISHED", Toast.LENGTH_SHORT).show();
}
} catch (IOException | JSONException e) {
e.printStackTrace();
}
}
【问题讨论】:
-
您使用的是什么库/版本?您可以在将对象转换为 JSON 时发布一个 sn-p 吗?我建议在您的问题中添加详细信息以使其更具重现性。见stackoverflow.com/help/minimal-reproducible-example
-
我正在使用 retrofit2 和 Java 1.8 和 sdk 30,我将使用代码片段编辑我的帖子!
标签: java json android-studio google-cloud-datastore