📜  c# 将对象打印到 json - Javascript (1)

📅  最后修改于: 2023-12-03 15:29:47.515000             🧑  作者: Mango

C# 将对象打印到 JSON - JavaScript

在开发中,我们经常需要将对象转换为 JSON 格式,以便进行 API 接口传输或存储。C# 提供了强大的 JsonConvert 类库,可以帮助我们方便地将对象转换为 JSON 格式,并且可以控制 JSON 格式的输出方式。

使用 JsonConvert 类库将对象转换为 JSON 格式

以下是将 C# 对象转换为 JSON 格式的示例代码:

using Newtonsoft.Json;

// 定义一个类
public class Person
{
  public string Name { get; set; }
  public int Age { get; set; }
  public string Gender { get; set; }
}

// 对象转 JSON 格式
var person = new Person { Name = "John", Age = 30, Gender = "Male" };
string json = JsonConvert.SerializeObject(person);

上面的代码中,我们首先定义了一个名为 Person 的类,我们将实例化这个类并将其转换为 JSON 格式。我们通过 JsonConvert.SerializeObject() 方法将 Person 对象转换为 JSON 格式,并将其放入一个名为 json 的字符串中。

结果示例:

{"Name":"John","Age":30,"Gender":"Male"}

如果要将 C# 对象转换为带格式的 JSON 格式,可以使用 Formatting 枚举。以下是示例代码:

string formattedJson = JsonConvert.SerializeObject(
  person, Formatting.Indented);

通过 Formatting.Indented 可以让 JSON 格式的输出带有缩进,易于阅读。

结果示例:

{
  "Name": "John",
  "Age": 30,
  "Gender": "Male"
}
使用 JavaScriptSerializer 将对象转换为 JSON 格式

除了 JsonConvert 类库,C# 还提供了 JavaScriptSerializer 类库,可以将对象转换为 JSON 格式。以下是将 C# 对象转换为 JSON 格式的示例代码:

using System.Web.Script.Serialization;

// 对象转 JSON 格式
var person = new Person { Name = "John", Age = 30, Gender = "Male" };
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(person);

上面的代码中,我们首先引入了 System.Web.Script.Serialization 命名空间,并实例化了一个名为 serializer 的 JavaScriptSerializer 对象。利用 serializer 对象的 Serialize() 方法,我们将 person 对象转换为 JSON 格式并放入 json 变量中。

结果示例:

{"Name":"John","Age":30,"Gender":"Male"}

同样地,如果想要输出格式化后的 JSON 格式,可以使用 JsonSerializerSettings 类中的 Formatting 属性为 None 或 Indented,被设置为 Indented 时,输出带有缩进,易于阅读。

总结

在本文中,我们学习了如何使用 C# 代码将对象转换为 JSON 格式,同时了解到 Newtonsoft.Json 和 JavaScriptSerializer 类库的使用方法。无论是哪种方法,都可以返回一个格式良好的 JSON 字符串,方便我们进行数据传输或数据存储。

完整代码示例:

using Newtonsoft.Json;
using System.Web.Script.Serialization;

public class Person
{
  public string Name { get; set; }
  public int Age { get; set; }
  public string Gender { get; set; }
}

public class Program
{
  public static void Main()
  {
    // Newtonsoft.Json 方法
    var person1 = new Person { Name = "John", Age = 30, Gender = "Male" };
    string json1 = JsonConvert.SerializeObject(person1);
    string formattedJson = JsonConvert.SerializeObject(person1, Formatting.Indented);

    // JavaScriptSerializer 方法
    var person2 = new Person { Name = "Mary", Age = 25, Gender = "Female" };
    JavaScriptSerializer serializer = new JavaScriptSerializer();
    string json2 = serializer.Serialize(person2);

    // 输出结果
    Console.WriteLine($"Newtonsoft.Json 的结果:\n{json1}\n\n格式化后:\n{formattedJson}\n\nJavaScriptSerializer 的结果:\n{json2}");
  }
}

输出结果:

Newtonsoft.Json 的结果:
{"Name":"John","Age":30,"Gender":"Male"}

格式化后:
{
  "Name": "John",
  "Age": 30,
  "Gender": "Male"
}

JavaScriptSerializer 的结果:
{"Name":"Mary","Age":25,"Gender":"Female"}