트릭은 연락처 목록에서 collect
입니다. contract
목록의 구조가 다음과 같다고 가정하면 아래의 방법으로 jsonBuilder
을 사용하십시오. 당신이 최종 stucture로 대신 된 JSONObject의 JSONArray를 찾고 있다면
def contact = [
[ getFirstName : { 'A' }, getLastName : { 'B' }, getTitle : { 'C' } ],
[ getFirstName : { 'D' }, getLastName : { 'E' }, getTitle : { 'F' } ],
[ getFirstName : { 'G' }, getLastName : { 'H' }, getTitle : { 'I' } ]
]
def jsonBuilder = new groovy.json.JsonBuilder()
jsonBuilder {
contacts contact.collect {
[
FirstName: it.getFirstName(),
LastName: it.getLastName(),
Title: it.getTitle()
]
}
}
println jsonBuilder.toPrettyString()
// Prints
{
"contacts": [
{
"FirstName": "A",
"LastName": "B",
"Title": "C"
},
{
"FirstName": "D",
"LastName": "E",
"Title": "F"
},
{
"FirstName": "G",
"LastName": "H",
"Title": "I"
}
]
}
, 다음 사용 : 구조처럼 필요한 경우 그것은 이해하지 않지만
jsonBuilder(
contact.collect {
[
FirstName: it.getFirstName(),
LastName: it.getLastName(),
Title: it.getTitle()
]
}
)
// OP
[
{
"FirstName": "A",
"LastName": "B",
"Title": "C"
},
{
"FirstName": "D",
"LastName": "E",
"Title": "F"
},
{
"FirstName": "G",
"LastName": "H",
"Title": "I"
}
]
아래
[
{
"contact": {
"FirstName": "A",
"LastName": "B",
"Title": "C"
}
},
{
"contact": {
"FirstName": "D",
"LastName": "E",
"Title": "F"
}
},
{
"contact": {
"FirstName": "G",
"LastName": "H",
"Title": "I"
}
}
]
다음 사용
jsonBuilder(
contact.collect {
[
contact : [
FirstName: it.getFirstName(),
LastName: it.getLastName(),
Title: it.getTitle()
]
]
}
)
감사합니다 친구,하지만 지금 나는 수입 net.sf.json.JSONObject을 사용하고 있습니다 import net.sf.json.JSONArray JSONObject obj = new JSONObject(); JSONArray list = 새 JSONArray(); 그리고 이것은 목적을 해결합니다. – user2093576