Как сериализовать объект в json, установив имя поля json из значения свойства объекта?
Я использую NewtonsoftJson в качестве библиотеки json.
public class Data
{
public string Question {get;set;} = "Test Question?";
public string Answer {get;set;} = "5";
}
ожидаемый вывод json:
{
"Test Question?": {
"Answer": "5"
}
}
что ты уже испробовал? Где ты застрял?
Можете ли вы изменить модель? Я полагаю, вы могли бы получить этот результат с помощью словаря.
Отвечает ли это на ваш вопрос? Перезаписать имя свойства Json в c#
Для этого можно использовать словарь:
JsonSerializer.Serialize(
new Dictionary<string, object>
{
{
data.Question, new
{
data.Answer
}
}
});
или, если вы используете Newtonsoft, вы можете использовать
JsonConvert.SerializeObject
метод сериализации с тем же вводом.
Хорошо, но ОП использует Json.NET, а не System.Text.Json.
Я добавил версию Newtonsoft, хотя я думаю, что вопрос был в основном о том, как построить такой объект, а не о том, как вообще сериализовать объект.
Просто для записи
var data = new Data();
string json = new JObject { [data.Question] = new JObject { ["Answer"] = data.Answer } }.ToString();
Какую библиотеку JSON вы используете? Newtonsoft или System.Text.Json?