使用属性将 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"}
我正在尝试转换如下对象:
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"}