J'utilise Newtonsoft Json.net pour analyser la chaîne JSON. Je convertis la chaîne en JObject. Lorsque vous accédez à la valeur de l'élément par la clé, je veux que la comparaison soit insensible à la casse. Dans le code ci-dessous, j'utilise "FROM" comme clé. Je veux qu'il renvoie la chaîne "1" à la ligne json ["FROM"]. ToString (). Mais ça échoue. Est-il possible de faire fonctionner le code ci-dessous?
String ptString = "{from: 1, to: 3}";
var json = (JObject)JsonConvert.DeserializeObject(ptString);
String f = json["FROM"].ToString();
c # vous permet d'utiliser des dictionnaires avec des clés qui ne respectent pas la casse, donc une solution de contournement que j'ai utilisée consiste à convertir le JObject en un dictionnaire avec StringComparer.CurrentCultureIgnoreCase
set, comme ceci:
JObject json = (JObject)JsonConvert.DeserializeObject(ptString);
Dictionary<string, object> d = new Dictionary<string, object>(json.ToObject<IDictionary<string, object>>(), StringComparer.CurrentCultureIgnoreCase);
String f = d["FROM"].ToString();
Cela devrait fonctionner:
string json = @"{UPPER: 'value'}";
JObject o = JObject.Parse(json);
var value = o.GetValue("upper", StringComparison.OrdinalIgnoreCase)?.Value<string>();