serialize newtonsoft jtoken jsonconvert jobject example c# json json.net

c# - newtonsoft - Comparación de claves de JSON.NET JObject no distingue mayúsculas y minúsculas



newtonsoft.json c# (2)

Estoy usando Newtonsoft Json.net para analizar la cadena JSON. Convierto la cadena en el JObject. Cuando accedo al valor del elemento mediante la clave, quiero que la comparación no distinga mayúsculas de minúsculas. En el código de abajo, uso "FROM" como clave. Quiero que devuelva la cadena "1" en la línea json ["FROM"]. ToString (). Pero falla. ¿Es posible hacer que el siguiente código funcione?

String ptString = "{from: 1, to: 3}"; var json = (JObject)JsonConvert.DeserializeObject(ptString); String f = json["FROM"].ToString();


Esto debería funcionar:

string json = @"{UPPER: ''value''}"; JObject o = JObject.Parse(json); var value = o.GetValue("upper", StringComparison.OrdinalIgnoreCase)?.Value<string>();


c # le permite usar diccionarios con claves que no distinguen entre mayúsculas y minúsculas, por lo que una solución alternativa que he usado es convertir el JObject en un diccionario con el conjunto StringComparer.CurrentCultureIgnoreCase , así:

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();