由于您使用的是匿名对象,最简单的解决方法是创建一个Dictionary<string, string>
反而:
Output("somename", new Dictionary<string, string> { { "my-name", "somevalue" } });
许多 .Net JSON 序列化程序都支持将字典序列化为 JSON 对象,其中字典键映射到 JSON 属性名称,包括json.net /questions/tagged/json.net and javascript序列化器 /questions/tagged/javascriptserializer乃至数据契约json序列化器 /questions/tagged/datacontractjsonserializer when UseSimpleDictionaryFormat = true https://learn.microsoft.com/en-us/dotnet/api/system.runtime.serialization.json.datacontractjsonserializersettings.usesimpledictionaryformat?view=netframework-4.7.2#System_Runtime_Serialization_Json_DataContractJsonSerializerSettings_UseSimpleDictionaryFormat如前所述here https://stackoverflow.com/q/4559991/3744182.
如果您有不同类型的值,并且使用在序列化过程中支持任意多态性的序列化程序(Json.NET 和JavaScriptSerializer
做)你可以使用Dictionary<string, object>
:
Output("somename",
new Dictionary<string, object>
{
{ "my-name", "somevalue" },
{ "my-id", 101 },
{ "my-value", value },
});