c#
C# Newtonsoft.Json 10가지 예제
블루건
2023. 4. 7. 17:30
Newtonsoft.Json은 C# 언어로 작성된 오픈 소스 JSON.NET 라이브러리입니다. 이 라이브러리는 .NET Framework 및 .NET Core와 같은 .NET 플랫폼에서 사용할 수 있습니다.
JSON.NET은 JSON 데이터를 .NET 개체로 직렬화하고 .NET 개체를 JSON 데이터로 역직렬화하는 기능을 제공하므로 .NET 언어로 JSON 데이터를 처리하는 데 매우 유용합니다.
JSON.NET은 매우 빠르고 유연하며 사용하기 쉽습니다. 또한 JSON 데이터를 부분적으로 직렬화하거나 JSON 데이터를 XML 데이터로 변환하는 기능도 제공합니다.
다음은 JSON.NET을 사용하는 방법에 대한 10가지 예입니다.
1. 개체를 JSON으로 직렬화합니다.
string json = JsonConvert.SerializeObject(myObject);
2. JSON을 개체로 역직렬화합니다.
MyClass myObject = JsonConvert.DeserializeObject<MyClass>(json);
3. JSON을 동적 개체로 역직렬화합니다.
dynamic myObject = JsonConvert.DeserializeObject(json);
4. JSON을 파일로 직렬화
using (StreamWriter file = File.CreateText(filePath))
{
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(file, myObject);
}
5. 파일에서 JSON을 역직렬화합니다.
using (StreamReader file = File.OpenText(filePath))
{
JsonSerializer serializer = new JsonSerializer();
MyClass myObject = (MyClass)serializer.Deserialize(file, typeof(MyClass));
}
6. 중첩된 개체로 JSON을 역직렬화합니다.
MyClass myObject = JsonConvert.DeserializeObject<MyClass>(json, new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.Auto
});
7. 사용자 지정 변환기를 사용하여 JSON을 역직렬화합니다.
public class MyConverter : JsonConverter<MyClass>
{
public override MyClass ReadJson(JsonReader reader, Type objectType, MyClass existingValue, bool hasExistingValue, JsonSerializer serializer)
{
// Custom deserialization logic
}
public override void WriteJson(JsonWriter writer, MyClass value, JsonSerializer serializer)
{
// Custom serialization logic
}
}
MyClass myObject = JsonConvert.DeserializeObject<MyClass>(json, new MyConverter());
8. 형식을 지정하여 JSON을 직렬화합니다.
string json = JsonConvert.SerializeObject(myObject, Formatting.Indented);
9. 직렬화할 때 null 값을 무시합니다.
string json = JsonConvert.SerializeObject(myObject, new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore
});
10. 커스텀 컨트랙트 리졸버로 JSON 역직렬화:
public class MyContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
// Custom property creation logic
}
}
MyClass myObject = JsonConvert.DeserializeObject<MyClass>(json, new JsonSerializerSettings
{
ContractResolver = new MyContractResolver()
});