2012-01-17 31 views
1

我有一個是在/ saveAssignments發佈了一套有效的JSON,如POST數據未在Play中檢索!框架

[{"profile_sfid":"00eA0000000l3v7IAA", "object":[{"name":"null", "viewable":[],"editable":[]},{"name":"account", "viewable":["Object Type","Salesforce ID"],"editable":["Test Multi","Test Checkbox"]},{"name":"contact", "viewable":["Object Type","Salesforce ID"],"editable":["Test Multi","Test Checkbox"]}]}] 

的路線圖。 POST操作返回一個200成功的消息,但控制方法的記錄聲明

public static void saveAssignments(JsonElement json) 
{ 
    Logger.debug("Hey guys, here is my json! " + json); 
} 

使用以下GSONBinder爲JsonElement

@Global 
public class GsonBinder implements TypeBinder<JsonElement> { 

@Override 
public Object bind(String name, Annotation[] annotations, String value, Class actualClass, Type genericType) throws Exception 
{  
    return new JsonParser().parse(value); 
} 
} 

任何幫助,將不勝感激返回null爲JSON,因爲我不確定爲什麼它沒有正確接受。

回答

0

我在做類似的事情,使用具有相同的結構,JSON對象接受(在本例中,「玩家」類)一個POJO類:

public class Player { 
    public String name; 
    ... 
} 

public static void addPlayerJSON(JsonObject body) { 
    Gson gson = new Gson(); 
    Player newPlayer = gson.fromJson(body, Player.class); 
    Logger.debug("Player name: " + newPlayer.name); 
    ... 
} 

的「newPlayer」對象有從json分析的數據。

0

如果你傳遞一個參數「json = {你的json}」,你會在服務器端收到它。或者將「json」參數重命名爲「body」,以便它可以使用請求主體中發佈的json。