有没有简单的方法在.NET中使用JSON来确保密钥是以小写形式发送的?
目前,我正在使用newtonsoft的Json.NET库,并简单地使用
string loginRequest = JsonConvert.SerializeObject(auth);
在本例中,auth
只是以下对象
public class Authority
{
public string Username { get; set; }
public string ApiToken { get; set; }
}
这会导致
{"Username":"Mark","ApiToken":"xyzABC1234"}
有没有办法确保username
和apitoken
键是小写的?
当然,我不想简单地通过String.ToLower()
运行它,因为username
和apitoken
的值大小写混合。
我意识到我可以通过编程来做到这一点,并手动创建JSON字符串,但我需要大约20个左右的JSON数据字符串,我正在查看是否可以节省一些时间。我想知道是否有任何已经构建的库允许您强制使用小写来创建键。
发布于 2015-12-10 09:04:39
protected void Application_Start() {
JsonConfig.Configure();
}
public static class JsonConfig
{
public static void Configure(){
var formatters = GlobalConfiguration.Configuration.Formatters;
var jsonFormatter = formatters.JsonFormatter;
var settings = jsonFormatter.SerializerSettings;
settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
}
}
发布于 2017-11-24 08:18:26
您可以使用"JsonProperty":
用法:
public class Authority
{
[JsonProperty("userName")] // or [JsonProperty("username")]
public string Username { get; set; }
[JsonProperty("apiToken")] // or [JsonProperty("apitoken")]
public string ApiToken { get; set; }
}
var json = JsonConvert.SerializeObject(authority);
发布于 2020-02-11 08:30:31
对于我来说,我使用了一些其他答案的组合,并最终得到了以下结果
return JsonConvert.SerializeObject(obj, Formatting.Indented, new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
});
更接近于我正在寻找的解决方案,因为我并不想创建自己的解决方案
https://stackoverflow.com/questions/6288660
复制相似问题