是否可以将带有无效字符的字段添加到.net AnonymousType?

时间:2017-07-25 19:56:30

标签: c# .net facebook anonymous-types

我试图向Facebook发送一条他们称之为game.achievement的JSON消息,但我想在发布之前使用AnonymousType创建对象。问题是其中一个领域是"游戏:积分" (用冒号)。正如您所看到的,我已经在对象字段中使用了@前缀,但它不适用于游戏:点字段。它以红色加下划线并且不会编译。

        var paramsJson = new
            {
                privacy = new { value = "ALL_FRIENDS" },
                @object = new
                {
                    app_id = "my app id",
                    type = "game.achievement",
                    title = "Test",
                    @"game:points" = 100,
                    description = "Test",
                    image = "img.png"
                }
            };

我尝试过多种@,双引号等。是否有可能或者我是否需要使用StringBuilder?

1 个答案:

答案 0 :(得分:0)

为什么不用字典?

var postData = new Dictionary<string, object>
{
    {"game:points", 100}
}

大概你不得不将你的对象序列化为Post it,无论它是如何构建的。将其序列化为JSON将导致相同的结构。或者,就像其他人建议的那样,并为您的有效负载创建一个类。然后,您可以使用Newtonsoft指示序列化的替代名称。

public class GameAchievement
{
   [JsonProperty("game:points")]
   public int Points {get; set;}
}