繁体   English   中英

将 Json 转换为 Google 数据存储实体

[英]Convert Json to Google Datastore Entity

我一直在 android studio 上开发一个 Java 应用程序,我想提取一些我存储在谷歌数据存储中的实体。 实体存储为List<Entity>并转换为 Json。 在 Android Studio 中,我现在正在努力将字符串化实体转换回其原始版本。 这是我的 Json 响应示例:

[{"properties":
              {"name":
                     {"valueType":"STRING", "values":"nameOfEntity", ...},
               "date":
                     {"valueType":"STRING", "values":"dateOfEntity", ...},
               ...
              }
}]

我只需要每个属性的“值”。

有什么方法可以使用 json 将响应转换回数据存储实体?

编辑:我的代码片段

 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();
                }
            }

在这种情况下,您需要使用 Java 反序列化库(如gson )将 JSON 字符串转换为等效的 Java 对象。

这是可能的,但这样做可能是一个漫长的过程。 实体对象由许多其他对象组成,由于 Cloud Client 库目前不支持 Android,因此您必须将每个对象重写。 也有关于反序列化的教程。 请参阅此链接作为示例。

最后,我建议您查看对象的整个结构,以便您可以开始使用。 查看 Datastore 对象Entity

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM