#c# #json #json.net
#c# #json #json.net
Вопрос:
Я получаю строку json в функции, которая может быть объектом json или списком объектов json [{"user": "123", "password": "abc", "class":"A"}]
, т.е. Я хочу проверить, содержит ли эта строка Json свойство user и пароль, а затем обновить их значение. Итак, я получаю строку и преобразую ее с JToken
помощью
var jToken = JToken.Parse(result);
if (jToken is JArray)
convert into JArray
else
convert into JObject
После этого я должен проверить, существуют ли вышеуказанные ключи в JArray или JObject.
Обратите внимание, что я также хочу проверить нечувствительность ключей к регистру.Может кто-нибудь помочь, как проверить нечувствительность ключей к регистру в массиве Json и объекте и изменить их значения.
Ответ №1:
Вы можете выполнять поиск свойств без учета регистра через JObject.Property()
.
var json = "[{ 'user':'123','password':'abc','class':'A' }]";
var token = JToken.Parse(json);
foreach (JObject user in token as JArray)
{
var userProp = user.Property("USER", StringComparison.OrdinalIgnoreCase);
if (userProp != null)
{
userProp.Value = "updated username";
}
var passwordProp = user.Property("PaSsWoRd", StringComparison.OrdinalIgnoreCase);
if (passwordProp != null)
{
passwordProp.Value = "updated password";
}
}
Console.WriteLine(token.ToString());
Это приводит к следующему json:
[
{
"user": "updated username",
"password": "updated password",
"class": "A"
}
]