在C#中,ToUpper()和之间有什么区别ToUpperInvariant()?
你能举例说明结果可能有所不同吗?
是否有简单的方法在.NET中使用JSON来确保密钥以小写形式发送?
目前我正在使用newtonsoft的Json.NET库并且只是使用
string loginRequest = JsonConvert.SerializeObject(auth);
Run Code Online (Sandbox Code Playgroud)
在这种情况下auth只是以下对象
public class Authority
{
public string Username { get; set; }
public string ApiToken { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这导致了
{"Username":"Mark","ApiToken":"xyzABC1234"}
Run Code Online (Sandbox Code Playgroud)
有没有办法确保username和apitoken键以小写形式出现?
我不想简单地通过运行它String.ToLower(),当然,因为价值观username和apitoken是混合的情况.
我意识到我可以以编程方式执行此操作并手动创建JSON字符串,但我需要大约20个左右的JSON数据字符串,我看到我是否可以节省一些时间.我想知道是否有任何已经构建的库允许您强制使用小写来创建密钥.
当JSON对象包含jsonKey传递给方法时,下面显示的代码效果很好.我想知道...如果有办法将值分配给一个键的不区分大小写的表示?
例:
public String getOutputEventDescription(JsonElement outputEvent) throws ParserException {
return retrieveString(outputEvent, DESCRIPTION);
}
Run Code Online (Sandbox Code Playgroud)
无论是否将DESCRIPTION定义为"描述","描述"或"DeScRipTIOn",都应该可以工作
protected String retrieveString(JsonElement e, String jsonKey) throws ParserException {
JsonElement value = e.getAsJsonObject().get(jsonKey);
if (value == null) {
throw new ParserException("Key not found: " + jsonKey);
}
if (value.getAsString().trim().isEmpty()) {
throw new ParserException("Key is empty: " + jsonKey);
}
return e.getAsJsonObject().get(jsonKey).getAsString();
}
Run Code Online (Sandbox Code Playgroud)