如何创建一个属性包含点(句点)的json字符串?

cha*_*ani 3 c# json.net

我正在尝试发送一个带有HttpRequest这样的JSON对象:

{
   "some.setting.withperiods":"myvalue"
}
Run Code Online (Sandbox Code Playgroud)

我一直在为我的其他请求创建匿名对象,但由于名称包含一个点,因此我不能这样做.

我知道我可以创建一个类并指定[DataMember(Name="some.setting.withperiods")]属性,但必须有一个更轻量级的解决方案.

Xen*_*ing 7

没有"简单"的方法来实现这一点,因为.C#是保留的.

但是,通过使用字典和集合初始化程序,您可以实现非常接近的目标.它仍然有点孤立,并且不需要您创建自定义类.

var obj = new Dictionary<string, object>
{
    { "some.setting.withperiods", "myvalue" }
};

var json = JsonConvert.SerializeObject(obj);
//{"some.setting.withperiods":"myvalue"}
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以使用相同的"JsonProperty"属性.例如

    [JsonProperty(".Name")]
    public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

  • OP 在问题中说,他知道他可以使用属性,但正在寻找替代解决方案。 (2认同)