I have a List that I would like to convert to JSON using C# and Newtonsoft.
tags
[0]: "foo"
[1]: "bar"
Output to be:-
{"tags": ["foo", "bar"]}
Can anybody point me in the right direction please? I can convert the List to JSON okay but they key thing here is I need the "tags" part in the JSON which I do not get with a convert using JsonConvert.SerializeObject(tags)
.
The below code wraps the list in an anonymous type, and thus generates what you are looking for.
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
namespace Test
{
class Program
{
static void Main(string[] args)
{
var list = new List<string> {"foo", "bar"};
var tags = new {tags = list};
Console.WriteLine(JsonConvert.SerializeObject(tags));
Console.ReadLine();
}
}
}
Arguably the easiest way to do this is to just write a wrapper object with your List<string>
property
public class Wrapper
{
[JsonProperty("tags")]
public List<string> Tags {get; set; }
}
And then when serialized this gives the output you expect.
var obj = new Wrapper(){ Tags = new List<string>(){ "foo", "bar"} };
var json = JsonConvert.SerializeObject(obj);
Console.WriteLine(json);
// outputs: {"tags":["foo","bar"]}
Live example: http://rextester.com/FTFIBT36362
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With