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

원문 : https://docs.microsoft.com/ko-kr/dotnet/standard/serialization/system-text-json-how-to?pivots=dotnet-5-0 

 

 

 

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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
반응형