Изменение параметра в массиве Json в C# . Как изменить параметр одного уникального объекта в файле Json
Хочу понять правильно ли я делаю, в том ли направлении двигаюсь)
- делаю десиреализацию файла Json, получаю массив
- в массиве нахожу циклом нужный параметр при первом вхождении, меняю его.
- И обратно сериализую в Json, только этот параметр?
Возможно ли сериализировать какую-то часть, или нужно полностью весь массив ?
Нужно найти player_id = "76561199099565075" и поменять у него значение "availability" на +1
Пример Json файла:
{
"entry_id": "m4",
"duration_minutes": 1,
"gpublic": 0,
"spawn_on_ground": 1,
"only_on_respawn": 1,
"on_max_usages": 1,
"on_time_usages": 1,
"max_usages": 1,
"items": [
{
"attachments": [],
"class_name": "Apple",
"amount": 3
},
{
"attachments": [],
"class_name": "Mag_STANAG_60Rnd",
"amount": 1
},
{
"attachments": [],
"class_name": "Ammo_556x45",
"amount": 3
}
],
"weapons": [
{
"attachments": [
{
"attachments": [],
"class_name": "ACOGOptic",
"amount": 1
}
],
"class_name": "M4A1",
"change_fire_mode": 0,
"fire_mode": 1,
"attach_magazine": 1,
"magazine_class_name": "Mag_STANAG_60Rnd"
}
],
"players": [
{
"player_id": "76561199099565074",
"promocode_days": 4,
"availability": 4,
"usages": 0,
"last_use_unix_ts": 773856611,
"activation_date_unix": 0
},
{
"player_id": "76561199099565075",
"promocode_days": 4,
"availability": 0,
"usages": 5,
"last_use_unix_ts": 773856611,
"activation_date_unix": 0
}
]
}
что я делаю:
var data = Newtonsoft.Json.JsonConvert.DeserializeObject<Rootobject>(jsonText);
/// Начинаем поиск в массиве
///
string findPlayerId = "76561199099565004"; //Заменить значение переменной на переменную из BD, после отладки
for (int i = 0; i < data.players.Length; i++) //перебираем весь массив Players
{
if (data.players[i].player_id == findPlayerId)
{
string player_idS = data.players[i].player_id;
int Usages = data.players[i].usages;
int Availability = data.players[i].availability;
Console.WriteLine("Найдено совпадение под номером:" + "" + i
+ " "+ player_idS + " "+ " "+ Usages + " "+ Availability);
//--- код для обновления полей : availability +1
Availability += 1;
Console.WriteLine("Добавляем 1 к Availability" + " = "+ Availability);
/// **Здесь должен быть код на сериализацию в Json для параметра Availability , но пока не понимаю как его реализовать**
return; //выходим из подцикла при первом вхождении
}