【问题标题】:How to put variable into JSON如何将变量放入 JSON
【发布时间】:2013-04-18 11:34:44
【问题描述】:

实际上,我正在使用 PushSharp。我想发送通知,但我必须将变量放入此 JSON 而不是硬编码文本(下例)。

var msg = "TEST MESSAGE";
    push.QueueNotification(new GcmNotification().ForDeviceRegistrationId(registrationId)
                             .WithJson("{\"alert\":\"HERE MESSAGE\",\"badge\":7,\"sound\":\"sound.caf\"}"));

有可能吗?如何将 msg 变量放入

我尝试过这样的事情:

push.QueueNotification(new GcmNotification().ForDeviceRegistrationId(registrationId)
                         .WithJson("{\"alert\":\"{0}\",\"badge\":7,\"sound\":\"sound.caf\"}",msg));

但它说:方法 'WithJson' 没有重载需要“3”个参数。

有什么办法解决这个问题吗?

【问题讨论】:

  • ...WithJson(string.Format("{\"alert\":\"{0}\",\"badge\":7,\"sound\":\"sound.caf\"}",msg))...
  • 我从来没有使用过 PushSharp,但是除了手动从字符串中形成它之外,必须有更好的方法来处理 json。假设您的消息包含"。会发生什么?
  • 我试过了。现在我得到这个错误。 System.FormatException:输入字符串的格式不正确。

标签: c# android json xamarin pushsharp


【解决方案1】:

如果您想将消息添加到 JSON 中,您可以这样做:

var msg = "my message"; // this would be set somewhere else in the code
var jsonObject = {
    "alert" : "{0}",
    "badge" : "7",
    "sound" : "sound.caf",
    "msg" : msg
};

// convert the object into a string
var jsonString = JSON.stringify(jsonObject);

push.QueueNotification(new GcmNotification().ForDeviceRegistrationId(registrationId)
        .WithJson(jsonString));

编辑:我更改了代码,因此您不必操作字符串。相反,您现在可以操作 jsonObject。 JSON.stringify 然后将其转换为字符串。

【讨论】:

  • 谢谢。 :) 如果它解决了您的问题,您能否将其标记为答案?那太棒了:D
  • 不幸的是,您上面编辑的代码不起作用。错误 CS1525:意外符号 :', expecting ,' 或 `}'。以前的版本完美运行。
  • 我无法重现该错误。它对我有用:jsfiddle.net/74eBt 你的 msg 变量中有什么?
猜你喜欢
  • 1970-01-01
  • 2023-02-15
  • 2020-09-03
  • 2020-12-10
  • 1970-01-01
  • 2022-10-04
  • 2011-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多