2013-07-29 41 views
2

我想如下C#.WithJson无效的JSON错误

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

现在,每当我跑,我得到了InvalidCastException的是未处理/ JSON无效检测,以建立这个JSON字符串!错误信息。

然而,当我做了以下

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

它完美的罚款。

如果任何人有任何想法或建议如何得到这个工作,将不胜感激。

谢谢!

+0

确定'Message'不包含'“'或''\\ @ – I4V

+0

对不起I4V我不明白你的意思 字符串消息=?的 ”Hello World“,是我” m使用 – user2094139

回答

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)); 
+0

谢谢!它工作得很好:) – user2094139