Изменение параметра в массиве Json в C# . Как изменить параметр одного уникального объекта в файле Json

Хочу понять правильно ли я делаю, в том ли направлении двигаюсь)

  1. делаю десиреализацию файла Json, получаю массив
  2. в массиве нахожу циклом нужный параметр при первом вхождении, меняю его.
  3. И обратно сериализую в 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; //выходим из подцикла при первом вхождении
     }
                

Ответы (0 шт):