我有一个名为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\"}\"}"}
答案 0 :(得分:1)
我认为问题在于构建网址。你将JSON包装在一个字符串中,而Parse正在期待一个对象。如果你在jsonUser周围删除双引号,我敢打赌它会工作。
string url = "https://api.parse.com/1/classes/AccountData?" + WebUtility.UrlEncode("where={\"user\":" + jsonUser + "}");