akushi
119
2016-02-16 08:19:17
3
3731

JSTL에서 JsonObject 객체의 하위 속성을 점(.) 형태의 참조로 접근하는 방법 질문


안녕하세요.


JSTL로 JsonObject (com.google.gson.JsonObject)의 하위 속성에 접근할 때 점(.) 형태의 참조로 접근할 수 있는 방법이 있나요?


[JsonObject]

JsonObject data = new JsonObject();

{

    "name" : "fruits",

    "taste" : {

        "apple" : "sweet",

        "kiwi" : "sourness",

        "orange" : "fresh"

    }

}


[JSTL]

1) ${data.get('taste').get('apple')}

2) ${data.taste.apple}


위 JSTL 에서 1)의 방법으로는 접근이 되는데,

2)와 같이 단순 점 형태의 참조로는 접근이 안됩니다.


만약 data 객체를 JsonObject가 아닌 Map<String, Object> 형태로 구성하면 2)의 방법으로 접근이 됩니다.


혹 1)의 방법으로 JsonObject 객체의 하위 속성에 접근할 수 있는 방법이 있을까요?


고맙습니다.

0
  • 답변 3

  • k2il
    340
    2016-02-16 09:08:11

    ${data.taste[0].apple} 

    이케하면 되려나..

  • akushi
    119
    2016-02-16 09:54:23

    k2il님 답변 고맙습니다. 설레는 마음으로 방금 해봤는데 안되네요ㅠㅠ

  • brandonL
    494
    2016-02-16 13:47:06

    JsonObject 객체를 살펴보시면 왜 안되는지 아실수 있습니다.

    . 으로 접근한다는 의미는 맴버변수 또는 맴버메소드를 호출하는 부분입니다.

    따라서 JsonObject 내에 해당 맴버변수가 존재하지 않고, 객체내의 key로 value를 가져오는 방법이기때문에

    접근이 되지 않습니다.


    . 으로 호출하시려면 JsonObject가 아닌 다른 클래스로 변환하셔서 반환하시면 호출하실수있습니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.