我尝试按如下方式构建此JSon字符串
push.QueueNotification(new GcmNotification().ForDeviceRegistrationId(RegID)
.WithJson(@"{""message"":"+Message+"}"));
现在每当我运行它时,我都会检测到InvalidCastException未处理/检测到无效的JSON!错误信息。
但是,当我执行以下操作时
push.QueueNotification(new GcmNotification().ForDeviceRegistrationId(RegID)
.WithJson(@"{""message"":""Hello World""}"));
完美无缺。
如果有人对如何使这项工作有任何想法或建议,我们将不胜感激。
谢谢!
答案 0 :(得分:4)
由于您手动构建JSON(您不应该这样做),因此必须确保Message
包含其所包含的JSON部分的正确格式。
string Message = "Hello World";
将导致JSON不包含字符串周围的引号,这是无效的。即:
{ "message" : Hello World }
您可以手动添加引号,但应该做的是使用JSON库。 .NET在JavaScriptSerializer中有一个简单的。有了它,你可以做这样的事情,从不担心你的Message
是否包含正确的格式。
var obj = new { message = "Hello World" };
var serializer = new JavaScriptSerializer();
var json = serializer.Serialize(obj);
push.QueueNotification(new GcmNotification().ForDeviceRegistrationId(RegID)
.WithJson(json));