繁体   English   中英

C#-SNS的JSON序列化

[英]C# - JSON serialization for SNS

我想序列化要通过AWS SNS模块发送的消息。

public async Task<string> jsonConvert(string message)  
{
    datamessage datamessage = new datamessage { message = message };
    gcmMessage lGcm = new gcmMessage { data = datamessage };
    MessageDto messageDto = new MessageDto { GCM = JsonConvert.SerializeObject(lGcm) };
    var msg = JsonConvert.SerializeObject(messageDto);
    return msg;
}

我使用相同的代码,但返回值是

{"GCM":"{\"data\":{\"message\":\"TestMsg\"}}"}

但我想要

{"default": "TestMsg", "GCM": "{ \"data\": { \"message\": \"TestMsg\" } }"}

任何帮助,将不胜感激。

您要创建的Json的结构应如下所示:

类:

public class Data
{
    [JsonProperty("message")]
    public string Message { get; set; }
}

public class GCM
{
    [JsonProperty("data")]
    public Data Data { get; set; }
}

public class RootObject
{
    [JsonProperty("default")]
    public string Default { get; set; }

    [JsonProperty("GCM")]
    public GCM GCM { get; set; }
}

创建消息:

RootObject rootObject = new RootObject
{
    Default = "TestMsg",
    GCM = new GCM { Data = new Data { Message = "TestMsg" } }
};

连载:

var serialized = JsonConvert.SerializeObject(rootObject);

结果

"{\"default\":\"TestMsg\",\"GCM\":{\"data\":{\"message\":\"TestMsg\"}}}"

在您的方法中,它看起来像这样:

public async Task<string> jsonConvert(string message)
{
    RootObject rootObject = new RootObject
    {
        Default = message,
        GCM = new GCM { Data = new Data { Message = message } }
    };

    var msg = await Task.Factory.StartNew(() => JsonConvert.SerializeObject(rootObject));
    return msg;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM