2013-12-09 43 views
1

我正在使用restlet庫和Jackson發送JSON數據,並且我無法獲得以下內容來爲List返回json對象,我得到null它並沒有錯誤:Restlet調用返回String []或者列表<String>返回null與Jackson

public class Info extends ServerResource { 

    /** 
    * @param args 
    * @throws Exception 
    */ 
    public static void main(String[] args) throws Exception { 
     Server server = new Server(Protocol.HTTP,8080,Info.class); 
     System.out.println("Starting: " + args[0]); 
     server.start(); 
     System.out.println("Start returned: " + args[1]); 
     ObjectMapper mapper = new ObjectMapper(); 
     List<String> user = new ArrayList<String>(); 
     user.add("SDFE"); 
     user.add("XXYY"); 
     Object o = "user"; 
     mapper.writeValue(new File("/tmp/user.json"), o); 
    } 

    /*@Get("json") 
    public String isAwake() 
    { 
     System.out.println("Getting true"); 
     return "true"; 
    }*/ 

    @Get("json") 
    // public List los() 
    //public String[] los() 
    public String los() 
    { 
     ArrayList l = new ArrayList<String>(); 
     String[] sl = new String[2]; 

     sl[0] = "FDSSE"; 
     sl[1] = "ODSEF"; 

     l.add("ESDF"); 
     l.add("JJKE"); 
      //return l; 
     return sl.toString(); 
      // return sl[0]; 
    } 

正如你也許能夠從評論的訴說,我這個做了許多方法,用列表,對象和字符串返回[]。我將該列表轉換爲該對象的對象。

如果我返回一個純String,它將被編碼併發送。我不能讓列表發回一個JSON數組

回答

0

我有一個類似的問題。如果我正確地理解了一切,傑克遜需要一個班級進行序列化,並且在遞交清單時遇到了麻煩。

public class MyObject { 
    //object details with setters and getters 
} 

,然後包含這些列表的第二類:

public class MyObjectList { 
    private List<MyObject> myObjectList; 
    //and appropriate setter and getter 
} 

然後我的URL電話是:

所以我通過列表中創建一個類,基本上環繞它解決了這個問題
@GET 
public MyObjectList getMyObject() { 
    //method defined 
} 

希望有幫助!如果有更好的方法,我會好奇自己看看!

+0

這就是我也試過的: – mikeb

+0

[code] import java.util.ArrayList; public class StringList extends ArrayList { } [code] – mikeb

+0

不要用您的StringList類擴展ArrayList。在MyObjectList類中,你會看到它只是一個類,並不是從任何派生的。但它有一個對象,它是一個列表。 –