반응형
groovy를 사용하여 json을 해석하는 방법
다음과 같이 들어오는 JSON 데이터를 해석하고 싶습니다.
{
"212315952136472": {
"id": "212315952136472",
"name": "Ready",
"picture": "http://profile.ak.fbcdn.net/hprofile-ak-snc4/195762_212315952136472_4343686_s.jpg",
"link": "http://www.hityashit.com/movie/ready",
"likes": 5,
"category": "Movie",
"description": "Check out the reviews of Ready on http://www.hityashit.com/movie/ready"
}
}
사용하고 있는 코드는 다음과 같습니다.
JSONElement userJson = JSON.parse(jsonResponse)
userJson.data.each {
Urls = it.link
}
그러나 나는 아무것도 할당받을 수 없다.Urls
.좋은 의견이라도 있나?
JsonSlurper를 사용해 본 적이 있습니까?
사용 예:
def slurper = new JsonSlurper()
def result = slurper.parseText('{"person":{"name":"Guillaume","age":33,"pets":["dog","cat"]}}')
assert result.person.name == "Guillaume"
assert result.person.age == 33
assert result.person.pets.size() == 2
assert result.person.pets[0] == "dog"
assert result.person.pets[1] == "cat"
이 응답은 '212315952136472' 키를 가진 단일 요소가 포함된 지도입니다.지도에 '데이터' 키가 없습니다.모든 엔트리를 루프하려면 다음과 같이 사용합니다.
JSONObject userJson = JSON.parse(jsonResponse)
userJson.each { id, data -> println data.link }
단일 요소 맵임을 알고 있으면link
:
def data = userJson.values().iterator().next()
String link = data.link
또한 ID를 알고 있는 경우(예를 들어 요청을 작성하기 위해 ID를 사용한 경우) 보다 간결하게 값에 액세스할 수 있습니다.
String id = '212315952136472'
...
String link = userJson[id].link
Groovy에서 JSON을 원하는 유형으로 변환할 수 있습니다.as
연산자:
import groovy.json.JsonSlurper
String json = '''
{
"name": "John",
"age": 20
}
'''
def person = new JsonSlurper().parseText(json) as Person
with(person) {
assert name == 'John'
assert age == 20
}
이 고유번호는 좀 까다롭네요.
이 값을 알고 있으면 간단해집니다.
stage('Test Groovy JSON parsing') {
steps {
script {
def userJson = readJSON file: 'myJsonFile.json'
def keyList = userJson['212315952136472'].keySet()
echo "${keyList}" // ['id', 'name', 'picture', 'link', 'likes', 'category', 'description']
echo "${userJson['212315952136472'].name}" // Ready
echo "${userJson['212315952136472'].link}" // http://www.hityashit.com/movie/ready
}
}
}
이 번호를 모르면 JSON을 통해서
userJson.each { key, value ->
echo "Walked through key $key and value $value"
}
Jenkins Read JSON from File의 문서도 확인합니다.
def jsonFile = new File('File Path');
JsonSlurper jsonSlurper = new JsonSlurper();
def parseJson = jsonSlurper.parse(jsonFile)
String json = JsonOutput.toJson(parseJson)
def prettyJson = JsonOutput.prettyPrint(json)
println(prettyJson)
언급URL : https://stackoverflow.com/questions/6688090/how-to-parse-json-using-groovy
반응형
'programing' 카테고리의 다른 글
Ajax 대상이 localhost인 경우 IE 10 및 11에서 액세스가 거부됨 (0) | 2023.03.27 |
---|---|
Create-React-App 빌드 - "Uncatched SyntaxError:예기치 않은 토큰 <" (0) | 2023.03.27 |
WordPress 플러그인 개발 - JQuery / JavaScript 사용방법 (0) | 2023.03.27 |
마운트 해제 시 이벤트 수신기 제거 반응 (0) | 2023.03.27 |
오리진 'localhost:3000'에서 '...'의 XMLHttpRequest에 대한 액세스가 CORS 정책에 의해 차단되었습니다. (0) | 2023.03.27 |