[VB.NET 2022] JSON Parsing - JSON을 파싱해보자.
2022. 11. 21. 09:54ㆍVB.NET
JSON을 파싱하는건 예전 VB6 시절에는 상당히 번거로운 일이었다. 그냥 문서의 처음부터 루프를 돌며 하나씩 분리해서 이름과 값을 직접 때려넣어야 가능한 일이었으니 말이다.
예를 들어 아래 정말 간단한 JSON을 파싱할때 VB6과 VB.NET의 파싱이 어떻게 다른지 보자.
{
"str_name1" : "str_value1",
"str_name2" : "str_value2"
}
VB6에서 파싱
Private Function JsonParse_VB6(pSrc As String, pName As String) As String
Dim lpIdx1 As Integer, lpIdx2 As Integer, lpIdx3 As Integer, lpIdx4 As Integer, lpRet As String
lpRet = ""
lpIdx1 = InStr(pSrc, """" & pName & """")
lpIdx2 = InStr(lpIdx1 + Len("""" & pName & """"), pSrc, ":")
If lpIdx1 = 0 Or lpIdx2 = 0 Then GoTo EXIT_FUNCTION ' 찾는 name이 없음
lpIdx3 = InStr(lpIdx2 + Len(":"), pSrc, """")
lpIdx4 = InStr(lpIdx3 + Len(""""), pSrc, """")
If lpIdx3 = 0 Or lpIdx4 = 0 Then GoTo EXIT_FUNCTION ' 찾는 값이 없음
lpRet = Mid(pSrc, lpIdx3 + Len(""""), lpIdx4 - lpIdx3 - Len(""""))
EXIT_FUNCTION:
JsonParse_VB6 = lpRet
End Function
VB.NET 2022에서 파싱
우선 Nuget 패키지관리에서 Newtonsoft.Json을 추가하자. 일은 얘가 다한다.
현재 파일의 맨 위에 Newtonsoft.Json.Linq를 임포트 해주자.
Imports Newtonsoft.Json.Linq
이제 아래 소스와 같이 파싱하면 된다.
Private Function JsonParse_VBNET(pSrc As String, pName As String) As String
Dim lpJson = JObject.Parse(pSrc)
Return lpJson.SelectToken(pName).ToString
End Function
VB.NET은 Nuget 패키지에서 제공하는 모든 기능을 사용할 수 있으니 웬만하면 VB6처럼 직접 만들지 말고, 이미 검증된 수많은 기능을 활용하는게 버그발생을 줄이는 지름길이다.
반응형
'VB.NET' 카테고리의 다른 글
사진을 음악으로 연주하면 어떤 소리가 날까? (1) | 2022.12.05 |
---|---|
VB.NET 간단한 후킹을 통해 단축키 생성하기 (0) | 2022.11.29 |
VB.NET에서의 변수 선언 (0) | 2022.11.15 |
VB.NET에서의 타이머(Timer) 사용시 주의사항 (0) | 2022.11.14 |
여러줄의 코드를 한줄로 입력 (0) | 2022.04.22 |