我的视图是发布一组有效的json,例如
[{"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"]}]}]
到/ saveAssignments的路线。 post操作返回200成功消息,但控制器方法在logger语句
上为json返回nullpublic 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);
}
}
我们非常感谢任何帮助,因为我不确定为什么它不能正确接受这一点。
答案 0 :(得分:0)
我正在做类似的事情,使用一个与json对象具有相同结构的pojo类来接收(在这个例子中,是“Player”类):
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解析的数据。
答案 1 :(得分:0)
如果您传递参数“json = {your json}”,您将在服务器端收到它。或者将“json”参数重命名为“body”,以便它可以使用请求体中发布的json。