C#.WithJson无效JSON错误

本文关键字:错误 JSON 无效 WithJson | 更新日期: 2023-09-27 18:25:26

我正试图按照以下构建这个JSon字符串

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

现在,每当我运行此程序时,我都会得到InvalidCastException未处理/检测到无效JSON!错误消息。

然而,当我进行以下时

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

它非常好用。

如果有人对如何实现这一目标有任何想法或建议,我们将不胜感激。

谢谢!

C#.WithJson无效JSON错误

由于您手动构建JSON(实际上不应该这样做),因此必须确保Message包含其包含的JSON部分的正确格式。

string Message = "Hello World";

将导致JSON在字符串周围不包含引号,这是无效的。Ie:

{ "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));