Convert Object in C# to JSON with Attributes

I am trying to convert an object like the one below:

public class MyObject
{
    public ListOfStuff[] item { get; set; }
    public string Name { get; set; }
    public string Surname{ get; set; }
}

To a JSON object that looks like this:

{"listofstuff":[{
            "@stuffone":"1",
            "@stufftwo":"2",
            "@stuffthree":"3",
    }], 
"@name":"Bob",
"@surname":"The Builder"}

So that when it is converted to XML at a later stage the XML file is attribute centric rather than element centric. The part I am having difficulty with is @attributes I am using Newtonsoft.JSON for my Serialization, exmaple of how I serializing in C# is below:

string myJSONObject = JsonConvert.SerializeObject(MyObject);

Thanks in advance for any help.

Jon Skeet
people
quotationmark

You just need to use the [JsonProperty] attribute to specify the JSON name. Here's an example (ignoring ListOfStuff for simplicity - apply the same approach):

using System;
using Newtonsoft.Json;

public class MyObject
{
    [JsonProperty("@name")]
    public string Name { get; set; }
    [JsonProperty("@surname")]
    public string Surname{ get; set; }
}

class Test
{
    static void Main()
    {
        var x = new MyObject { Name = "Bob", Surname = "The Builder" };
        Console.WriteLine(JsonConvert.SerializeObject(x));
    }
}

Output:

{"@name":"Bob","@surname":"The Builder"}

people

See more on this question at Stackoverflow