如何将 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; }
}
在这里试试...
您可以使用 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
我有 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; }
}
在这里试试...
您可以使用 System.Text.Json
中的 JsonSerializerusing 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