C#.WithJson无效的JSON错误

时间:2013-07-29 15:25:04

标签: c# json pushsharp

我尝试按如下方式构建此JSon字符串

push.QueueNotification(new GcmNotification().ForDeviceRegistrationId(RegID)
                                  .WithJson(@"{""message"":"+Message+"}"));

现在每当我运行它时,我都会检测到InvalidCastException未处理/检测到无效的JSON!错误信息。

但是,当我执行以下操作时

push.QueueNotification(new GcmNotification().ForDeviceRegistrationId(RegID)
                                  .WithJson(@"{""message"":""Hello World""}"));

完美无缺。

如果有人对如何使这项工作有任何想法或建议,我们将不胜感激。

谢谢!

1 个答案:

答案 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));