페이지

2014년 12월 18일 목요일

VB.NET JSON 처리 ( Newtonsoft.json 이용 )


패키지 관리자 콘솔에서 Newtonsoft.json을 설치해줍니다.
install-package Newtonsoft.json
(참고:visual studio 에서 package manager console ( install-package ) 사용하는 방법)

필요한 패키지를 임포트합니다.
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq

json 문자열을 준비합니다. (vb 에서는 문자열 안에 큰따옴표 넣기위해 큰따옴표를 두번입력합니다.) json 문자열을 파싱하여 개별 항목값을 읽어봅니다.
Dim jsonString As String = "{""id"":1,""name"":""홍길동""}"
Dim jsonObject As JObject = JObject.Parse(jsonString) 'Object 만 파싱 한다.
Console.WriteLine("id:" & jsonObject.SelectToken("id").ToString)
Console.WriteLine("name:" & jsonObject.SelectToken("name").ToString)
직렬화 기능을 이용해 봅니다.
json 구조에 대응되는 클래스를 준비합니다.
Public Class Name
    Public Property id
    Public Property name
End Class

변환합니다.
Dim jsonString As String = "{""id"":1,""name"":""홍길동""}"
Dim onename As Name = JsonConvert.DeserializeObject(Of Name)(jsonString)
Console.WriteLine("id:" & onename.id)
Console.WriteLine("name:" & onename.name)

json 배열로 되어있는 데이터를 변환합니다.
Dim jsonString As String = "[{""id"":1,""name"":""홍길동""},{""id"":2,""name"":""임꺽정""}]"
Dim nameList As List(Of Name) = JsonConvert.DeserializeObject(Of List(Of Name))(jsonString)
For Each onename As Name In nameList
    Console.WriteLine("id:" & onename.id)
    Console.WriteLine("name:" & onename.name)
Next
객체를 문자열로 변환합니다.
Console.WriteLine(JsonConvert.SerializeObject(nameList(0)))

참고링크


댓글 없음:

댓글 쓰기