如何将 C# class 对象转换为 json?

How to convert C# class object to json?

我有 2 个 classes,User 和 UserResponse:

public class User
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName{ get; set; }
        public decimal Balance { get; set; }
    }

public class UserResponse
    {
        public User UserInfo { get; set; }
        public string Age { get; set; }
        public string Gender { get; set; }
        public string Message { get; set; }
    }

这是我想要收到的:

{
   "userInfo": {
      "id": "1",
      "firstName": "John",
      "lastName": "Doe",
      "balance": "1000"
    },
   "age": "25",
   "gender": "Male",
   "message": "Hello",
}

所以问题是如何将 UserResponse class 转换为我想要的 json?

您可以使用 JavascripSerializer

using System.Web.Script.Serialization;
var json = new JavaScriptSerializer().Serialize(objUserResponse);

我相信你是新手,想要一个工作示例来开始工作。

给你。

using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
                    
public class Program
{
    public static void Main()
    {
        var o = new UserResponse();
        o.Age = "25";
        o.Gender = "Male";
        o.Message = "Hello";
        o.UserInfo = new User();
        o.UserInfo.Id = 1;
        o.UserInfo.FirstName = "John";
        o.UserInfo.LastName = "Doe";
        o.UserInfo.Balance = 1000M;
        var json = JsonConvert.SerializeObject(o, Formatting.Indented, new JsonSerializerSettings {ContractResolver = new CamelCasePropertyNamesContractResolver()}  );
        Console.WriteLine(json);
    }
}

public class User
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName{ get; set; }
        public decimal Balance { get; set; }
    }

public class UserResponse
    {
        public User UserInfo { get; set; }
        public string Age { get; set; }
        public string Gender { get; set; }
        public string Message { get; set; }
    }

在这里试试...

Sample Code

您可以使用 System.Text.Json

中的 JsonSerializer
using System;
using System.Text.Json;
                    
public class Program
{
    public static void Main()
    {
        UserResponse response = new UserResponse { Age = "35", Gender = "male", Message = "Hello", UserInfo = new User { Id = 1, Balance = 5.00m, FirstName = "John", LastName = "Smith" } };
        Console.WriteLine(JsonSerializer.Serialize(response, new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase, WriteIndented = true}));
    }
}

public class User
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public decimal Balance { get; set; }
}

public class UserResponse
{
    public User UserInfo { get; set; }
    public string Age { get; set; }
    public string Gender { get; set; }
    public string Message { get; set; }
};

结果:

{
  "userInfo": {
    "id": 1,
    "firstName": "John",
    "lastName": "Smith",
    "balance": 5.00
  },
  "age": "35",
  "gender": "male",
  "message": "Hello"
}

您可以在这里找到详细信息:https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-customize-properties