반응형
어떤 언어든 코딩을 하면서 많이 사용하는것 중의 하나가 JSON 입니다.
C# 에서는 JSON 을 사용할때 가장 많이 이용하는 것 중의 하나가 바로 JSON.NET 으로
내장객체인 JavaScriptSerializer 보다 더욱 성능과 기능이 뛰어난 Newtonsoft.Json 의 json.net 을 주로 이용합니다.
nuget Package 에서 "json" 으로 검색을 해봐도 가장 상위에 나오는것을 볼 수 있습니다.
참고 : Newton JSON.NET의 성능 비교표(www.newtonsoft.com/json)
JSON.NET 간단 사용법
public class Books
{
public List<Book> Book { get; set; }
}
public class Book
{
public string TitleName { get; set; }
public string Author { get; set; }
}
protected void Page_Load(object sender, EventArgs e)
{
var list = new Books();
list.Book = new List<Book>();
list.Book.Add(new Book { TitleName = "asp.net styudy", Author = "asp.net" });
list.Book.Add(new Book { TitleName = "c# styudy", Author = "csharp" });
//1. class to json string
var jsonStr = JsonConvert.SerializeObject(list);
//2. string to class
var jsonObj = JsonConvert.DeserializeObject<Book>(jsonStr);
//3. json to xml
var node = JsonConvert.DeserializeXNode(jsonStr, "root");
Response.Write(jsonStr.ToString());
}
1. Class To Json
JsonConvert.SerializeObject() 를 이용하여 clsss 를 json 으로 Serialize (직렬화)
2. Json To Class
JsonConvert.DeserializeObject 를 이용하여 json 구조에 맞는 class로 Deserialize(역직렬화)
3. Json To XML
Json.net 을 이용하면 Json 을 XML 로도 쉽게 변경이 가능합니다.
JsonConvert.DeserializeXNode(jsonStr, "root");
* json 으로 변경시 setting 을 통하여 여러가지 포맷으로 변경이 가능
camelcase 로 명명 예)
var settings = new JsonSerializerSettings() {
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
var jsonStr = JsonConvert.SerializeObject(list, settings);
참고: https://www.newtonsoft.com/json
반응형
'dev > asp.net, c#' 카테고리의 다른 글
[asp.net] 웹사이트 Application_Error 에러(Exception)로깅 with log4net (2) | 2020.11.18 |
---|---|
[c#] 숫자 및 날짜 서식 지정 (표준형식, 사용자형식) (0) | 2020.11.17 |
[c#] HttpWebRequest , Expect 헤더 100-Continue 이슈 (0) | 2020.11.11 |
[c# asp.net core 3.1] - gRPC 서버, 클라이언트 샘플 튜토리얼 (1) | 2020.11.06 |
[c#] 파일 업로드 asp.net core, webform (0) | 2020.10.06 |