簡體   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