2013-07-29 42 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