반응형

 JsonSlurper는 Groovy에서 JSON 데이터를 파싱하는 유용한 클래스입니다.

아래는 JsonSlurper를 사용하는 다양한 예제들입니다.

 

기본 사용 예제

import groovy.json.JsonSlurper

def jsonText = '{"name": "John", "age": 30, "city": "New York"}'
def jsonSlurper = new JsonSlurper()
def parsedData = jsonSlurper.parseText(jsonText)

println "Name: ${parsedData.name}"
println "Age: ${parsedData.age}"
println "City: ${parsedData.city}"

 

파일에서 JSON 파싱하기

import groovy.json.JsonSlurper

def file = new File('data.json')
def jsonSlurper = new JsonSlurper()
def parsedData = jsonSlurper.parse(file)

println "파일 내용: $parsedData"

 

 

배열이 포함된 JSON 파싱

import groovy.json.JsonSlurper

def jsonText = '''
{
  "employees": [
    {"firstName": "John", "lastName": "Doe"},
    {"firstName": "Anna", "lastName": "Smith"},
    {"firstName": "Peter", "lastName": "Jones"}
  ]
}
'''

def jsonSlurper = new JsonSlurper()
def parsedData = jsonSlurper.parseText(jsonText)

parsedData.employees.each { employee ->
    println "Employee: ${employee.firstName} ${employee.lastName}"
}

 

 

URL에서 JSON 데이터 파싱

import groovy.json.JsonSlurper
import java.net.URL

def url = new URL('https://api.example.com/data')
def jsonSlurper = new JsonSlurper()
def parsedData = jsonSlurper.parse(url.newReader())

println "API 응답: $parsedData"

 

 

깊은 중첩 구조 파싱

import groovy.json.JsonSlurper

def jsonText = '''
{
  "company": {
    "name": "Tech Corp",
    "departments": [
      {
        "name": "Development",
        "employees": 50
      },
      {
        "name": "Marketing",
        "employees": 20
      }
    ]
  }
}
'''

def jsonSlurper = new JsonSlurper()
def parsedData = jsonSlurper.parseText(jsonText)

println "회사 이름: ${parsedData.company.name}"
parsedData.company.departments.each { dept ->
    println "부서: ${dept.name}, 직원 수: ${dept.employees}"
}

 

 

JsonSlurper 옵션 사용

import groovy.json.JsonSlurper
import groovy.json.JsonParserType

// INDEX_OVERLAY 모드 사용 (성능 최적화)
def jsonSlurper = new JsonSlurper().setType(JsonParserType.INDEX_OVERLAY)
def jsonText = '{"name": "Alice", "scores": [95, 88, 92]}'
def parsedData = jsonSlurper.parseText(jsonText)

println "Name: ${parsedData.name}"
println "Scores: ${parsedData.scores.join(', ')}"

 

 

 

반응형