Я получаю сообщение об ошибке, когда пытаюсь сериализовать или обновить файл json. Я просто хочу обновить значение "остаток средств" внутри файла json, и у меня появилась идея здесь... Кажется, я не могу заставить ее работать для моего проекта. Файл Users.json не меняется, когда я его проверяю.
вот мой код:
Users.json
[
{
"id": 1,
"username": "sachin",
"password": "sachin1",
"firstName": "Sachin",
"lastName": "Karnik",
"birthdate": "2011-6-14",
"balance": 20000,
"cardNumber": 12345
},
{
"id": 2,
"username": "dina",
"password": "dina1",
"firstName": "Dina",
"lastName": "Meyers",
"birthdate": "2012-8-20",
"balance": 20000,
"cardNumber": 23456
},
{
"id": 3,
"username": "andy",
"password": "andy1",
"firstName": "Andy",
"lastName": "Rose",
"birthdate": "2010-2-11",
"balance": 20000,
"cardNumber": 34567
}
]
Menu.cs
public static void BankMenu(object? balance, object? user)
{
User[]? Users = JsonConvert.DeserializeObject<User[]>(Login.jsonResponse);
int bal = Convert.ToInt32(balance);
int money;
try{
money = ValidateAmountInput(bal, user);
if (money <= bal && money != 0)
{
bal -= money;
foreach (var usr in Users!)
{
if (usr.FirstName == user?.ToString())
{
usr.Balance = bal;
}
}
var json = JsonConvert.SerializeObject(Users, Formatting.Indented);
File.WriteAllText(Login.jsonResponse, json);
}
}
catch(System.Exception e)
{
WriteLine(e);
}
у тебя ошибка
File.WriteAllText(Login.jsonResponse, json);
вместо ogin.jsonResponse вы должны использовать путь к файлу
File.WriteAllText(<full file path\Users.json>, json);
Я думаю, что его путь к файлу хранится в Login.jsonResponse, который, очевидно, не сможет десериализоваться User[]? Users = JsonConvert.DeserializeObject<User[]>(Login.jsonResponse)
@ScottyD0nt Тогда это будет ошибка newtonsoft.json DeserializeObject, но это ошибка файла сохранения.
да, я не видел исключения, которое было добавлено к сообщению. похоже, вы правильно поняли.
«ошибка, когда я пытаюсь сериализовать или обновить файл json» сериализовать или обновить? Я никогда не слышал об ошибке сериализации. Можете ли вы опубликовать сообщение об ошибке, пожалуйста?