2016-06-06 2 views
1

Jira에서 배우의 배열을 얻으려고합니다. 래퍼의 코드는 Gson.fromJson 호출에서 사용됩니다. 나는 필요한 정보가있는 배열을 가지고 있지 않은 json 문자열과 비슷한 것을 사용했기 때문에 문제가 배열과 관련이있는 것으로 보이지만 100 % 확실하지는 않습니다.gson 용 json 및 래퍼

import com.google.gson.annotations.SerializedName; 

public class JiraRoleJsonWrapper { 
    @SerializedName("self") 
    private String self; 
    @SerializedName("name") 
    private String name; 
    @SerializedName("id") 
    private int id; 
    @SerializedName("description") 
    private String description; 
    @SerializedName("actors") 
    private JiraActors[] actors; 

    public JiraActors[] getActors() { 
     return actors; 
    } 
    public void setActors(JiraActors[] actors) { 
     this.actors = actors; 
    } 

    public String getSelf() { 
     return self; 
    } 

    public void setSelf(String self) { 
     this.self = self; 
    } 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getDescription() { 
     return description; 
    } 

    public void setDescription(String key) { 
     this.description = description; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    /* 
    public String[] getAvatarUrls() { 
     return avatarUrls; 
    } 

    public void setAvatarUrls(String[] avatarUrls) { 
     this.avatarUrls = avatarUrls; 
    } 
    */ 
} 

class JiraActors { 
    @SerializedName("id") 
    private int id; 
    @SerializedName("displayNme") 
    private String displayName; 
    @SerializedName("type") 
    private String type; 
    @SerializedName("name") 
    private String name; 
    //@SerializedName("avatarUrl") 
    //private String avatarUrl; 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getDisplayName() { 
     return displayName; 
    } 

    public void setDisplayName(String displayName) { 
     this.displayName = displayName; 
    } 

    public String getType() { 
     return type; 
    } 

    public void setType(String type) { 
     this.type = type; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

} 

json으로는받을 것이다 :

{ 
    "self":"http://someserver.com:8080/apps/jira/rest/api/2/project/10741/role/10002", 
"name":"Administrators", 
"id":10002, 
"description":"A project role", 
"actors":[ 
    { 
     "id":12432, 
     "displayName":"Joe Smith", 
     "type":"atlassian-user-role-actor", 
     "name":"joesmi", 
     "avatarUrl":"/apps/jira/secure/useravatar?size=xsmall&ownerId=dawsmi&avatarId=12245" 
    }, 
    { 
     "id":12612, 
     "displayName":"Smurfette Desdemona", 
     "type":"atlassian-user-role-actor", 
     "name":"smudes", 
     "avatarUrl":"/apps/jira/secure/useravatar?size=xsmall&ownerId=lamade&avatarId=10100" 
    }, 

이 두 배우와 JSON의 형식을 보여줍니다. 나는 완전한 json 응답을하지 않았다. 그것은 단지 두 배우를 보여줍니다. 그것은 어떤 이유로 대한 getName 찾을 수없는

InputStream is = response.getEntityInputStream(); 
       Reader reader = new InputStreamReader(is); 
       Gson gson = new Gson(); 

       JiraRoleJsonWrapper[] jiraRoleJsonWrapper = gson.fromJson(reader, JiraRoleJsonWrapper[].class); 
       for (JiraRoleJsonWrapper w : jiraRoleJsonWrapper) { 
        JiraActors[] a = w.getActors(); 
        String name = a.getName(); 

: 내 코드에서

, 나는 배우를 검색하기 위해 다음과 같은 노력했다. 왜 그런지 모르겠습니다.

답변

1

나는 그것을 알아 냈다.

나는

public void setActors(ArrayList<JiraActors> actors) { 
    this.actors = actors; 
} 

가 그럼 난 배열 목록을 얻을 JiraActors의 getName() 메소드에 대한 액세스 권한을 얻을 수있었습니다에 setActors을 변경합니다.