Почему Json сохраняется пустым?
Учусь пользоваться библиотекой
Почему Json сохраняется пустым ?
Тело Json файла такое {}
using System.Collections.Generic;
using System.IO;
using System.Text.Json;
namespace ConsoleApp4TestJson
{
class Program
{
static void Main(string[] args)
{
SohranenenieVJson();
}
private static async void SohranenenieVJson()
{
Users users = new Users();
for (int i = 0; i < 10; i++)
{
User user = new User();
users.usersList.Add(user);
}
using FileStream createStream = File.Create("users.json");
await JsonSerializer.SerializeAsync(createStream, users);
}
}
class User
{
public string Name { get; private set; }
public string Age { get; private set; }
public User()
{
Name = "Артём";
Age = "20";
}
}
class Users
{
public List<User> usersList;
public Users()
{
usersList = new List<User>();
}
}
}
UPD - после комментария @EvgeniyZ

Ответы (1 шт):
Автор решения: aepot
→ Ссылка
В .NET Core 3.1 вы не сможете сериализовать поля с помощью System.Text.Json.
JsonSerializerOptions.IncludeFields поддерживается только начиная с .NET 5.
Советую использовать свойство
public List<User> UsersList { get; private set; }
На выходе
{"UsersList":[{"Name":"\u0410\u0440\u0442\u0451\u043C","Age":"20"},{"Name":"\u0410\u0440\u0442\u0451\u043C","Age":"20"},{"Name":"\u0410\u0440\u0442\u0451\u043C","Age":"20"},{"Name":"\u0410\u0440\u0442\u0451\u043C","Age":"20"},{"Name":"\u0410\u0440\u0442\u0451\u043C","Age":"20"},{"Name":"\u0410\u0440\u0442\u0451\u043C","Age":"20"},{"Name":"\u0410\u0440\u0442\u0451\u043C","Age":"20"},{"Name":"\u0410\u0440\u0442\u0451\u043C","Age":"20"},{"Name":"\u0410\u0440\u0442\u0451\u043C","Age":"20"},{"Name":"\u0410\u0440\u0442\u0451\u043C","Age":"20"}]}
А если сериализовать вот так
var options = new JsonSerializerOptions
{
WriteIndented = true,
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
};
await JsonSerializer.SerializeAsync(createStream, users, options);
То на выходе получится вот так
{
"UsersList": [
{
"Name": "Артём",
"Age": "20"
},
{
"Name": "Артём",
"Age": "20"
},
{
"Name": "Артём",
"Age": "20"
},
{
"Name": "Артём",
"Age": "20"
},
{
"Name": "Артём",
"Age": "20"
},
{
"Name": "Артём",
"Age": "20"
},
{
"Name": "Артём",
"Age": "20"
},
{
"Name": "Артём",
"Age": "20"
},
{
"Name": "Артём",
"Age": "20"
},
{
"Name": "Артём",
"Age": "20"
}
]
}


