[Json.NET(Newtonsoft.Json)] JsonConvert.SerializeObject JsonIgnore Attribute λ¬΄μ‹œ Option

public class ABC()
{
    public string A { get; set; }
    
    [JsonIgnore]
    public string B { get; set; }
}

ABC abc = new();
abc.A = "2PM";
abc.B = "μ•„λΉ„λ°±";

string serializedStr = JsonConvert.SerializeObject(abc);
Console.WriteLine(serializedStr);

μœ„ μ½”λ“œμ˜ μ‹€ν–‰ 결과둜 A 속성 값에 λŒ€ν•΄μ„œλ§Œ μ§λ ¬ν™”λ˜κ³  좜λ ₯이 될 κ²ƒμž…λ‹ˆλ‹€.
ν˜Ήμ‹œ μΌμ‹œμ μœΌλ‘œ A와 B 속성을 λͺ¨λ‘ μ§λ ¬ν™”ν•˜κ³  싢을 λ•Œ μ‚¬μš©ν•˜λŠ” SerializeObject μ˜΅μ…˜μ΄ μžˆκ±°λ‚˜, λŒ€μ²΄ 방법이 μžˆμ„κΉŒμš”β€¦?

1개의 μ’‹μ•„μš”

μžλ‹΅ν•©λ‹ˆλ‹€.
λ‹·λ„·μ±„νŒ…λ°© λ°λ‹˜κ»˜μ„œ μ•Œλ €μ£Όμ…¨μŠ΅λ‹ˆλ‹€.

2개의 μ’‹μ•„μš”

λ™μΌν•œ μ§ˆλ¬Έμ— λŒ€ν•œ μŠ€νƒμ˜€λ²„ν”Œλ‘œμš° 닡변이 μžˆμ–΄ μ˜¬λ €λ“œλ¦½λ‹ˆλ‹€.

3개의 μ’‹μ•„μš”

ν˜Ήμ‹œ NewtonSoft 의 JSON 말고 순수 C#의 System.Text.Json μ—μ„œλ„ κ°€λŠ₯ν•œ 방법을 μ•Œκ³  κ³„μ‹€κΉŒμš”??

2개의 μ’‹μ•„μš”

μ•„β€¦μ•„λ‹ˆμš” 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. System.Text.Json은 닀뀄보지 μ•Šμ•˜μŠ΅λ‹ˆλ‹€β€¦γ… γ… 

1개의 μ’‹μ•„μš”

System.Text.Json μ—μ„œλŠ” μ™„μ „ 동일 ν•˜μ§„ μ•Šμ§€λ§Œ

λ‹€μŒκ³Ό 같이 직렬화λ₯Ό 무지할지, λ˜λŠ” 기본적으둜 μ •ν•΄μ§„ κ·œμΉ™μ— μ˜κ±°ν•΄ ν—ˆμš© ν• μ§€
[JsonIgnore] νŠΉμ„±μ˜ Condition μ†μ„±μœΌλ‘œ 제곡 ν•©λ‹ˆλ‹€.
How to ignore properties with System.Text.Json | Microsoft Learn

Never : 항상 직렬화 ν—ˆμš©
WhenWritingNull : null인 경우 λ¬΄μ‹œ
μ™Έ λͺ‡κ°€μ§€ 속성이 μžˆμŠ΅λ‹ˆλ‹€.


λ˜ν•œ λ‹·λ„· μ΅œμ‹  ν™˜κ²½μ„ μ‚¬μš© ν•˜μ‹ λ‹€λ©΄
.NET 7 λΆ€ν„° NewtonSoft의 ContractResolver 와 λΉ„μŠ·ν•œ κΈ°λŠ₯으둜
JSON μ‚¬μš©μž 계약 κ΅¬ν˜„μ„ 제곡 ν•©λ‹ˆλ‹€. - Custom serialization and deserialization contracts | Microsoft Learn

μœ„ κΈ°λŠ₯으둜 νŠΉμ • μ΄λ¦„μ΄λ‚˜ ν˜•μ‹, 값을 κ°€μ§„ 속성은 직렬화 λ¬΄μ‹œ 처리 λ“± 직접 κ΅¬ν˜„μ„ 제곡 ν•©λ‹ˆλ‹€.

5개의 μ’‹μ•„μš”