繁体   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