use of me.chanjar.weixin.common.bean.WxMenu in project weixin-java-tools by chanjarster.
the class WxMenuGsonAdapter method deserialize.
public WxMenu deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
/*
* 操蛋的微信
* 创建菜单时是 { button : ... }
* 查询菜单时是 { menu : { button : ... } }
*/
WxMenu menu = new WxMenu();
JsonObject menuJson = json.getAsJsonObject().get("menu").getAsJsonObject();
JsonArray buttonsJson = menuJson.get("button").getAsJsonArray();
for (int i = 0; i < buttonsJson.size(); i++) {
JsonObject buttonJson = buttonsJson.get(i).getAsJsonObject();
WxMenu.WxMenuButton button = convertFromJson(buttonJson);
menu.getButtons().add(button);
if (buttonJson.get("sub_button") == null || buttonJson.get("sub_button").isJsonNull()) {
continue;
}
JsonArray sub_buttonsJson = buttonJson.get("sub_button").getAsJsonArray();
for (int j = 0; j < sub_buttonsJson.size(); j++) {
JsonObject sub_buttonJson = sub_buttonsJson.get(j).getAsJsonObject();
button.getSubButtons().add(convertFromJson(sub_buttonJson));
}
}
return menu;
}
use of me.chanjar.weixin.common.bean.WxMenu in project weixin-java-tools by chanjarster.
the class WxMenuGsonAdapter method serialize.
public JsonElement serialize(WxMenu menu, Type typeOfSrc, JsonSerializationContext context) {
JsonObject json = new JsonObject();
JsonArray buttonArray = new JsonArray();
for (WxMenu.WxMenuButton button : menu.getButtons()) {
JsonObject buttonJson = convertToJson(button);
buttonArray.add(buttonJson);
}
json.add("button", buttonArray);
if (menu.getMatchRule() != null) {
Gson gson = new Gson();
json.add("matchrule", gson.toJsonTree(menu.getMatchRule()));
}
return json;
}
use of me.chanjar.weixin.common.bean.WxMenu in project weixin-java-tools by chanjarster.
the class WxMpMenuAPITest method getMenu.
@DataProvider(name = "menu")
public Object[][] getMenu() {
WxMenu menu = new WxMenu();
WxMenuButton button1 = new WxMenuButton();
button1.setType(WxConsts.BUTTON_CLICK);
button1.setName("今日歌曲");
button1.setKey("V1001_TODAY_MUSIC");
WxMenuButton button2 = new WxMenuButton();
button2.setType(WxConsts.BUTTON_CLICK);
button2.setName("歌手简介");
button2.setKey("V1001_TODAY_SINGER");
WxMenuButton button3 = new WxMenuButton();
button3.setName("菜单");
menu.getButtons().add(button1);
menu.getButtons().add(button2);
menu.getButtons().add(button3);
WxMenuButton button31 = new WxMenuButton();
button31.setType(WxConsts.BUTTON_VIEW);
button31.setName("搜索");
button31.setUrl("http://www.soso.com/");
WxMenuButton button32 = new WxMenuButton();
button32.setType(WxConsts.BUTTON_VIEW);
button32.setName("视频");
button32.setUrl("http://v.qq.com/");
WxMenuButton button33 = new WxMenuButton();
button33.setType(WxConsts.BUTTON_CLICK);
button33.setName("赞一下我们");
button33.setKey("V1001_GOOD");
button3.getSubButtons().add(button31);
button3.getSubButtons().add(button32);
button3.getSubButtons().add(button33);
return new Object[][] { new Object[] { menu } };
}
use of me.chanjar.weixin.common.bean.WxMenu in project weixin-java-tools by chanjarster.
the class WxMenuAPITest method getMenu.
@DataProvider(name = "menu")
public Object[][] getMenu() {
WxMenu menu = new WxMenu();
WxMenuButton button1 = new WxMenuButton();
button1.setType(WxConsts.BUTTON_CLICK);
button1.setName("今日歌曲");
button1.setKey("V1001_TODAY_MUSIC");
WxMenuButton button2 = new WxMenuButton();
button2.setType(WxConsts.BUTTON_CLICK);
button2.setName("歌手简介");
button2.setKey("V1001_TODAY_SINGER");
WxMenuButton button3 = new WxMenuButton();
button3.setName("菜单");
menu.getButtons().add(button1);
menu.getButtons().add(button2);
menu.getButtons().add(button3);
WxMenuButton button31 = new WxMenuButton();
button31.setType(WxConsts.BUTTON_VIEW);
button31.setName("搜索");
button31.setUrl("http://www.soso.com/");
WxMenuButton button32 = new WxMenuButton();
button32.setType(WxConsts.BUTTON_VIEW);
button32.setName("视频");
button32.setUrl("http://v.qq.com/");
WxMenuButton button33 = new WxMenuButton();
button33.setType(WxConsts.BUTTON_CLICK);
button33.setName("赞一下我们");
button33.setKey("V1001_GOOD");
button3.getSubButtons().add(button31);
button3.getSubButtons().add(button32);
button3.getSubButtons().add(button33);
return new Object[][] { new Object[] { menu } };
}
use of me.chanjar.weixin.common.bean.WxMenu in project weixin-java-tools by chanjarster.
the class WxMpMenuAPITest method testCreateMenu2.
@Test
public void testCreateMenu2() throws WxErrorException {
String a = "{\n" + " \"menu\": {\n" + " \"button\": [\n" + " {\n" + " \"type\": \"click\",\n" + " \"name\": \"今日歌曲\",\n" + " \"key\": \"V1001_TODAY_MUSIC\"\n" + " },\n" + " {\n" + " \"type\": \"click\",\n" + " \"name\": \"歌手简介\",\n" + " \"key\": \"V1001_TODAY_SINGER\"\n" + " },\n" + " {\n" + " \"name\": \"菜单\",\n" + " \"sub_button\": [\n" + " {\n" + " \"type\": \"view\",\n" + " \"name\": \"搜索\",\n" + " \"url\": \"http://www.soso.com/\"\n" + " },\n" + " {\n" + " \"type\": \"view\",\n" + " \"name\": \"视频\",\n" + " \"url\": \"http://v.qq.com/\"\n" + " },\n" + " {\n" + " \"type\": \"click\",\n" + " \"name\": \"赞一下我们\",\n" + " \"key\": \"V1001_GOOD\"\n" + " }\n" + " ]\n" + " }\n" + " ]\n" + " }\n" + "}";
WxMenu menu = WxMenu.fromJson(a);
System.out.println(menu.toJson());
wxService.menuCreate(menu);
}
Aggregations