使用属性将 C# 中的对象转换为 JSON

Convert Object in C# to JSON with Attributes

我正在尝试转换如下对象:

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

在此先感谢您的帮助。

您只需要使用 [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"}