使用Attributes将C#中的Object转换为JSON

时间:2015-02-07 10:41:52

标签: c# json json.net

我正在尝试转换下面的对象:

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

对于看起来像这样的JSON对象:

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

因此,当它在稍后阶段转换为XML时,XML文件是以属性为中心而不是以元素为中心。我遇到困难的部分是@attributes我使用Newtonsoft.JSON进行序列化,例如我在C#中序列化的方法如下:

string myJSONObject = JsonConvert.SerializeObject(MyObject);

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您只需使用[JsonProperty]属性指定JSON名称。这是一个例子(为简单起见,忽略ListOfStuff - 应用相同的方法):

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));
    }
}

输出:

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