如何使用Parse获取对象和数组字段?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Parse获取对象和数组字段?相关的知识,希望对你有一定的参考价值。
我无法正确获取包含“Object”类型字段的ParseObject:在Parse DataBrowser中手动更改“Object”字段值然后从应用程序中获取ParseObject后,获取的ParseObject仍然提供旧值'对象'字段,但为'字符串'字段提供正确的新值。
这是我使用的示例代码:
public class MainActivity extends ActionBarActivity {
ParseObject object;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
object = ParseObject.createWithoutData("Test", "tvgTg8jAXz");
}
@Override
protected void onResume() {
super.onResume();
object.fetchInBackground().onSuccess(new Continuation<ParseObject, Object>() {
@Override
public Object then(Task<ParseObject> task) throws Exception {
JSONObject data = task.getResult().getJSONObject("data");
String name = task.getResult().getString("name");
Log.d("OBJECT", data.toString());
Log.d("OBJECT", name);
return null;
}
}).continueWith(new Continuation<Object, Object>() {
@Override
public Object then(Task<Object> task) throws Exception {
if (task.getError() != null) {
Log.e("OBJECT", task.getError().getLocalizedMessage());
}
return null;
}
});
}
}
在我更改DataBrowser中的'data'和'name'字段之后,如果在没有先前调用'onCreate()'的情况下调用'onResume()'(例如在锁定/解锁屏幕之后),则日志显示旧值'data'和'name'的新值。
这是一个简单的代码示例,以突出我在更大的项目中遇到的问题。
这是Parse android SDK的已知问题吗?有解决方法吗?谢谢
现在我了解到你已经打开了本地数据存储区,我可以得到一个至少部分的答案。
打开本地数据存储区有一些副作用。一个是本地只存在每个对象的一个实例。因此,当您第二次调用fetchInBackground
时,object
已经填充了数据。然后(我认为)问题是API不再覆盖“复杂”类型(指针,对象,数组),可能是因为它可能会破坏数据存储中的内部关系。由于数据存储将以递归方式保存对象(和指针),因此突然交换指针可能会使对象“挂起”。 (再次,只是猜测)。
现在我必须承认,它仍然让我有点看着你的代码,因为它似乎你在任何时候都没有把你的对象写入数据存储,但是..
在“刷新”它之前,应该解决对象的问题:
object.unpinInBackground.onSuccess(new Continuation<>{
...
// when done call fetch
});
根据Parse的说法,这是一个他们现在无法解决的已知问题:https://developers.facebook.com/bugs/1624269784474093/
我们必须使用以下方法从ParseObject中检索JSON对象/数组字段:
- getMap()而不是getJSONObject()
- getList()而不是getJSONArray()
这些方法将分别返回Map和List对象。我发现在我的项目中管理Map和List而不是JSONObjet和JSONArray不是问题,甚至更清晰。
以上是关于如何使用Parse获取对象和数组字段?的主要内容,如果未能解决你的问题,请参考以下文章
parse.com - 如何使用 PHP SDK 从 parse.com 查询和获取类似数组的 json?