簡體   English   中英

使用Android的Parse&Java從JSON創建對象

[英]Create object from JSON with Parse & Java for Android

我最近開始進行Android開發,正在使用Parse.com和本機Java來構建應用程序。 我正在嘗試做的事情是弄清楚如何通過Parse Parse.com的回調從JSON結果創建對象。

{
 "result": 
 {
 "count": 3,
 "lang": "en-US",
 "tasks": [
     {
      "ID": "0123",
      "Name": "Task 1",
      "AssingedTo": "Darxval",
      "Scope": "Home"
     },
     {
      "ID": "0124",
      "Name": "Task 2",
      "AssingedTo": "Darxval",
      "Scope": "Home"
     },
     {
      "ID": "0125",
      "Name": "Task 3",
      "AssingedTo": "Darxval",
      "Scope": "Home"
     }
  ]
 }
}

我通過Parse調用的方法如下所示。 (有關此方法的更多信息,請參見文檔): 解析文檔

ParseCloud.callFunctionInBackground("RetrieveTasks", new HashMap<String, Object>(), new FunctionCallback<Object>() {
  void done(Object result, ParseException e) {
    if (e == null) {
      // do stuff with object
    }
  }
});

我試圖將Function回調更改為一個類,該類采用以一堆字符串和Task對象的ListArray描述的json形式。 但是它不會創建對象。 它總是想使用HashMap。 有沒有辦法將數據變成我想要的對象而不是HashMap? 我是否需要在對象上“實現”一個接口以允許在回調中創建對象?

任何幫助,將不勝感激。

什么對象添加到HashMap? 它是JSONObject嗎? 如果是這樣,則可以使用構造函數將JSONObject轉換為要查找的任何自定義對象,並轉換JSONObject中的數據。

例如,如果返回的JSONObject稱為“輸出”:

    try {
        JSONObject result = output.getJSONObject("result");
        int count = result.getInt("count");
        String lang = result.getString("lang");

        JSONArray tasks = result.getJSONArray("tasks");
        JSONObject firstObjectInArray = tasks.getJSONObject(0);
        String firstID = firstObjectInArray.getString("ID");
    } catch (JSONException e) {
        e.printStackTrace();
    }

等等

然后使用您的Object的構造函數創建一個新的對象:

    Object obj = new Object(count, lang, firstID);

等等

欲獲得更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM