728x90
다음은 JsonSerializerOptions.IncludeFields 전역 설정 또는 JsonInclude 특성을 사용하여 직렬화 또는 역직렬화할 때의 필드를 포함합니다.
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Fields
{
public class Forecast
{
public DateTime Date;
public int TemperatureC;
public string Summary;
}
public class Forecast2
{
[JsonInclude]
public DateTime Date;
[JsonInclude]
public int TemperatureC;
[JsonInclude]
public string Summary;
}
public class Program
{
public static void Main()
{
var json =
@"{""Date"":""2020-09-06T11:31:01.923395"",""TemperatureC"":-1,""Summary"":""Cold""} ";
Console.WriteLine($"Input JSON: {json}");
var options = new JsonSerializerOptions
{
IncludeFields = true,
};
var forecast = JsonSerializer.Deserialize<Forecast>(json, options);
Console.WriteLine($"forecast.Date: {forecast.Date}");
Console.WriteLine($"forecast.TemperatureC: {forecast.TemperatureC}");
Console.WriteLine($"forecast.Summary: {forecast.Summary}");
var roundTrippedJson =
JsonSerializer.Serialize<Forecast>(forecast, options);
Console.WriteLine($"Output JSON: {roundTrippedJson}");
var forecast2 = JsonSerializer.Deserialize<Forecast2>(json);
Console.WriteLine($"forecast2.Date: {forecast2.Date}");
Console.WriteLine($"forecast2.TemperatureC: {forecast2.TemperatureC}");
Console.WriteLine($"forecast2.Summary: {forecast2.Summary}");
roundTrippedJson = JsonSerializer.Serialize<Forecast2>(forecast2);
Console.WriteLine($"Output JSON: {roundTrippedJson}");
}
}
}
// Produces output like the following example:
//
//Input JSON: { "Date":"2020-09-06T11:31:01.923395","TemperatureC":-1,"Summary":"Cold"}
//forecast.Date: 9/6/2020 11:31:01 AM
//forecast.TemperatureC: -1
//forecast.Summary: Cold
//Output JSON: { "Date":"2020-09-06T11:31:01.923395","TemperatureC":-1,"Summary":"Cold"}
//forecast2.Date: 9/6/2020 11:31:01 AM
//forecast2.TemperatureC: -1
//forecast2.Summary: Cold
//Output JSON: { "Date":"2020-09-06T11:31:01.923395","TemperatureC":-1,"Summary":"Cold"}
HttpClient 구현한 예제
using System;
using System.Net.Http;
using System.Net.Http.Json;
using System.Threading.Tasks;
namespace HttpClientExtensionMethods
{
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string Username { get; set; }
public string Email { get; set; }
}
public class Program
{
public static async Task Main()
{
using HttpClient client = new()
{
BaseAddress = new Uri("https://jsonplaceholder.typicode.com")
};
// Get the user information.
User user = await client.GetFromJsonAsync<User>("users/1");
Console.WriteLine($"Id: {user.Id}");
Console.WriteLine($"Name: {user.Name}");
Console.WriteLine($"Username: {user.Username}");
Console.WriteLine($"Email: {user.Email}");
// Post a new user.
HttpResponseMessage response = await client.PostAsJsonAsync("users", user);
Console.WriteLine(
$"{(response.IsSuccessStatusCode ? "Success" : "Error")} - {response.StatusCode}");
}
}
}
// Produces output like the following example but with different names:
//
//Id: 1
//Name: Tyler King
//Username: Tyler
//Email: Tyler @contoso.com
//Success - Created
728x90
Newtonsoft.Json 을 이용한 JSON을 Object로 Object를 JSON으로 변환하는 예제
( Converting Object to JSON and JSON to C# Objects )
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
namespace JSON
{
public class Employee
{
public int EmployeeID
{
get;
set;
}
public string EmployeeName
{
get;
set;
}
public string DeptWorking
{
get;
set;
}
public int Salary
{
get;
set;
}
}
class Program
{
static void Main(string[] args)
{
List < Employee > lstemployee = new List < Employee > ();
lstemployee.Add(new Employee()
{
EmployeeID = 100, EmployeeName = "Pradeep", DeptWorking = "OnLineBanking", Salary = 10000
});
lstemployee.Add(new Employee()
{
EmployeeID = 101, EmployeeName = "Mark", DeptWorking = "OnLineBanking", Salary = 20000
});
lstemployee.Add(new Employee()
{
EmployeeID = 102, EmployeeName = "Smith", DeptWorking = "Mobile banking", Salary = 10000
});
lstemployee.Add(new Employee()
{
EmployeeID = 103, EmployeeName = "John", DeptWorking = "Testing", Salary = 7000
});
string output = JsonConvert.SerializeObject(lstemployee);
Console.WriteLine(output);
Console.ReadLine();
List < Employee > deserializedProduct = JsonConvert.DeserializeObject < List < Employee >> (output);
}
}
}
원문 : https://www.c-sharpcorner.com/blogs/converting-object-to-json-and-json-to-c-sharp-objects
728x90
'Programming' 카테고리의 다른 글
[GO] struct tag 관련 글 (0) | 2021.07.19 |
---|---|
[GO] Windows, macOS 및 Linux용 Go 프로그램을 교차 컴파일하는 방법 (0) | 2021.07.17 |
[GO] RESTAPI 문서화 도구 - Swagger + Gin Framework 적용하기 (0) | 2021.07.17 |
[스크랩] Windows에서 make 명령어 설치 및 이용 방법 (0) | 2021.07.02 |
[스크랩] blazor ( dotnet web framework ) (0) | 2020.10.13 |
최근댓글