[英]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.