继承我的JSON
var postData =
"{ \"registration_ids\": [ \"" + pushNotificationState.RegistrationId + "\" ], "+
"\"data\": {\""+ pushNotificationState.NotificationData.NotificationData + "\"}";
注册ID和通知数据是变量。我从GCM服务器得到400响应,说JSON格式不正确。任何人都可以选择我出错的地方吗?
干杯
答案 0 :(得分:2)
您有一个开放{
但有两个关闭}
。
var postData = "{ \"registration_ids\": [ \"" + pushNotificationState.RegistrationId + "\" ], " + "\"data\": \""+ pushNotificationState.NotificationData.NotificationData + "\"}";
答案 1 :(得分:1)
使用一些Json工具,而不是手动创建字符串。否则,如果某些字符串变量包含{
,}
,"
等,则会出现问题。
var json = JsonConvert.DeserializeObject(
new {
registration_ids = new[] { pushNotificationState.RegistrationId },
data = pushNotificationState.NotificationData.NotificationData
});
答案 2 :(得分:0)
var postData = "{ \"registration_ids\": [ \"" + pushNotificationState.RegistrationId + "\" ]}, "+
"\"data\": {\""+ pushNotificationState.NotificationData.NotificationData + "\"}";
尝试用它替换它。
答案 3 :(得分:0)
您可以使用以下代码创建请求对象,然后转换为json。
public class GCMRequest
{
public GCMRequest()
{
data = new PayLoad();
}
public List<string> registration_ids;
public PayLoad data;
}
public class PayLoad
{
public string key;
}
您可以按以下方式创建请求
GCMRequest req = new GCMRequest();
List<string> tokens = new List<string>();
// .. fill the tokens to the 'tokens' list
req.registration_ids = tokens;
req.data.key = "Hi, how are you"; // message you want to send
string json = new JavaScriptSerializer().Serialize(req);
希望这会有所帮助。