Parse.com>查询约束>基于用户指针

时间:2014-05-13 12:10:56

标签: parse-platform

我有一个名为AccountData的类,我想返回与特定用户相关的所有行。在课堂上我有一个指向用户表的指针,其中包含他们的" ObjectId"

我尝试过以下对API的调用:

string url = "https://api.parse.com/1/classes/AccountData?" + WebUtility.UrlEncode("where={\"user\":\"fvJ8jPjyjx\"}");

其中fvJ8jPjyjx是用户的ObjectId,我想要与...相关的行。

api不会抛出任何错误:

{"results":[]}

我也尝试使用"用户对象"如下:

public class AccountDataUser
{
    public string __type { get; set; }
    public string className { get; set; }
    public string objectId { get; set; }
}

按如下方式构建对象:

AccountDataUser user = new AccountDataUser();
user.__type = "Pointer";
user.className = "_User";
user.objectId = objectId;
string jsonUser = JsonConvert.SerializeObject(user);

但这会引发api错误。

任何人都可以帮我退回与" user"相关的行。请?

由于

更新

根据Ryans的反馈,我已经恢复了尝试发送对象......

这就是发送内容:

GET https://api.parse.com/1/classes/AccountData?where%3D%7B%22user%22%3A%22%7B%22__type%22%3A%22Pointer%22%2C%22className%22%3A%22_User%22%2C%22objectId%22%3A%22fvJ8jPjyjx%22%7D%22%7D HTTP/1.1
Content-Type: application/json
X-Parse-Application-Id: xxxxx
X-Parse-REST-API-Key: xxxxxx
Host: api.parse.com
Connection: Keep-Alive

使用以下代码行构建网址:

ParseModel.AccountDataUser user = new ParseModel.AccountDataUser();
user.__type = "Pointer";
user.className = "_User";
user.objectId = objectId;

string jsonUser = JsonConvert.SerializeObject(user);

string url = "https://api.parse.com/1/classes/AccountData?" + WebUtility.UrlEncode("where={\"user\":\"" + jsonUser + "\"}"); // this doesn't work

我从API收到的错误是:

{"code":107,"error":"invalid json: {\"user\":\"{\"__type\":\"Pointer\",\"className\":\"_User\",\"objectId\":\"fvJ8jPjyjx\"}\"}"}

1 个答案:

答案 0 :(得分:1)

我认为问题在于构建网址。你将JSON包装在一个字符串中,而Parse正在期待一个对象。如果你在jsonUser周围删除双引号,我敢打赌它会工作。

string url = "https://api.parse.com/1/classes/AccountData?" + WebUtility.UrlEncode("where={\"user\":" + jsonUser + "}");