我试图向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?
答案 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;}
}