Syncano Android SDK - Class 对象中的引用字段
Syncano Android SDK - Reference field in Class Object
我想在我的 Class 对象中使用 'reference' 类型的字段。
我不确定如何在 Java POJO 对象中定义它 - 我尝试设置字符串、整数、整数以及在 Web 仪表板中定义的对象作为参考 class - 我在创建时失败这样的对象(但是它在网络仪表板中正确可见):
Response{resultCode=5, httpResultCode=201, error='Error parsing response. com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected an int but was BEGIN_OBJECT at line 1 column 257 path $.userid', httpReasonPhrase='Created', data=null}
如果我在那里放置另一个对象类型,应用程序会崩溃 Field type Xyz is not supported.
我的Class对象:
@SyncanoClass(name = "custom_obj")
public class CustomObj extends SyncanoObject {
public static final String FIELD_TITLEID = "title";
public static final String FIELD_USERID = "userid";
@SyncanoField(name = FIELD_TITLEID)
public String title;
@SyncanoField(name = FIELD_USERID)
public Integer userId;
}
没有设置 userId - 我得到成功响应。
是的,我们知道这个错误并已在分支 Virtual Table support 上修复。在下周末应该合并到 master 并发布。我下面的回答与这个分支有关。
我们决定放弃将引用存储为 Integer
的想法,并将其替换为 SyncanoObject
以允许轻松访问对象。
例如,如果您下载 CustomObj,所有内部对象(例如 YourSyncanoObject
)都会折叠 - 这意味着您只获得带有 ID 的对象,没有所有其他字段。如果您想了解有关对象的更多信息,您应该调用 syncanoObject.fetch();
但是如果你想扩展对象,我们几乎可以完成类似于 Virtual Table 的未来,允许你获得带有扩展内部 syncano 对象字段的 CustomObj。
@SyncanoClass(name = "custom_obj")
public class CustomObj extends SyncanoObject {
public static final String FIELD_TITLEID = "title";
public static final String FIELD_USERID = "userid";
@SyncanoField(name = FIELD_TITLEID)
public String title;
@SyncanoField(name = FIELD_USERID)
public YourSyncanoObject syncanoObject;
}
我想在我的 Class 对象中使用 'reference' 类型的字段。 我不确定如何在 Java POJO 对象中定义它 - 我尝试设置字符串、整数、整数以及在 Web 仪表板中定义的对象作为参考 class - 我在创建时失败这样的对象(但是它在网络仪表板中正确可见):
Response{resultCode=5, httpResultCode=201, error='Error parsing response. com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected an int but was BEGIN_OBJECT at line 1 column 257 path $.userid', httpReasonPhrase='Created', data=null}
如果我在那里放置另一个对象类型,应用程序会崩溃 Field type Xyz is not supported.
我的Class对象:
@SyncanoClass(name = "custom_obj")
public class CustomObj extends SyncanoObject {
public static final String FIELD_TITLEID = "title";
public static final String FIELD_USERID = "userid";
@SyncanoField(name = FIELD_TITLEID)
public String title;
@SyncanoField(name = FIELD_USERID)
public Integer userId;
}
没有设置 userId - 我得到成功响应。
是的,我们知道这个错误并已在分支 Virtual Table support 上修复。在下周末应该合并到 master 并发布。我下面的回答与这个分支有关。
我们决定放弃将引用存储为 Integer
的想法,并将其替换为 SyncanoObject
以允许轻松访问对象。
例如,如果您下载 CustomObj,所有内部对象(例如 YourSyncanoObject
)都会折叠 - 这意味着您只获得带有 ID 的对象,没有所有其他字段。如果您想了解有关对象的更多信息,您应该调用 syncanoObject.fetch();
但是如果你想扩展对象,我们几乎可以完成类似于 Virtual Table 的未来,允许你获得带有扩展内部 syncano 对象字段的 CustomObj。
@SyncanoClass(name = "custom_obj")
public class CustomObj extends SyncanoObject {
public static final String FIELD_TITLEID = "title";
public static final String FIELD_USERID = "userid";
@SyncanoField(name = FIELD_TITLEID)
public String title;
@SyncanoField(name = FIELD_USERID)
public YourSyncanoObject syncanoObject;
}