i want to convert a List to JSON.
var bundledChats = new List<(int chatId, string chatName, Array chatParticipants)>();
bundledChats.Add((
chatId: 1,
chatName: "Random Name"
chatParticipants: [0, 1, 2, 3]));
Console.WriteLine(JsonConvert.SerializeObject(bundledChats));
Thats my Result:
[{"Item1":1,"Item2":"Chat Nummer #1","Item3":[28,200,111]}]
But i want to name Item_1... like the values that i set.
CodePudding user response:
Add JsonData class
public class JsonData
{
public int ChatId { get; set; }
public string ChatName { get; set; }
public int[] ChatParticipants { get; set; }
}
Now use
var bundledChats = new List<>()
{
new JsonData() { ChatId = 1, ChatName = "Random Name", ChatParticipants = new int[0, 1, 2, 3] }
};
string json = JsonConvert.SerializeObject(bundledChats);
CodePudding user response:
the code you posted is not valid, it can not be compiled. Try this
var bundledChats = new[] { new {
chatId= 1,
chatName= "Random Name",
chatParticipants = new int[] { 0, 1, 2, 3}}}; //.ToList() if you need a list
Console.WriteLine(JsonConvert.SerializeObject(bundledChats));
result
[{"chatId":1,"chatName":"Random Name","chatParticipants":[0,1,2,3]}]
or if you have the original data as tulip, you have to fix it and convert to anonymous type before serialization
var bundledChatsList = bundledChats
.Select(c => new {c.chatId, c.chatName, c.chatParticipants }).ToList();
Console.WriteLine(JsonConvert.SerializeObject(bundledChatsList));
