我正在使用Azure移动服务的.Net后端。我可以成功运行以下查询,它返回数据库中的所有项目,但它只返回带有ID的项目,并且没有其他列返回,它们都被设置为null
TableName.execute(new TableQueryCallback<ClassName>() {
@Override
public void onCompleted(List<ClassName> result, int count,
Exception exception, ServiceFilterResponse response)
那么我需要提供一个选择过滤器还是应该使用TableOperationsCallback?没有错误,它只返回所有列为null,除了id列
由于
答案 0 :(得分:1)
确保客户端和服务器之间的字段大小相匹配。默认情况下,.NET后端会使所有属性都是驼峰式的,所以如果你有这个类:
public class Person : EntityData
{
public string Name { get; set; }
public int Age { get; set; }
}
然后GET操作中的JSON响应将如下所示:
[
{ "id":"the-first-id", "name":"John Doe", "age":33 },
{ "id":"the-first-id", "name":"Jane Roe", "age":34 }
]
因此,您需要在Android应用程序中定义一个类型,其中字段以小写字母命名,或者使用@SerializeName
注释正确标记,如下例所示(您不需要这样做)对于id
属性,因为它是由SDK专门设置的:
public class Person {
@SerializedName("id")
public String Id;
@SerializedName("name")
public String Name;
@SerializedName("age")
public String Age;
}