Java实现微信菜单json字符串拼接
2023-09-11 14:18:15 时间
Java实现微信菜单json字符串拼接
微信菜单拼接json字符串方法
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
蕃薯耀 2016年3月31日 22:22:53 星期四
http://fanshuyao.iteye.com/
微信菜单json拼接方法:
private String getWxButtonJson(List<WxButton> wxButtonsParent){ StringBuffer sb = new StringBuffer("{"); sb.append("\"").append("button").append("\"").append(":").append("["); for (WxButton wxButton : wxButtonsParent) { sb.append("{"); sb.append("\"").append("name").append("\"").append(":").append("\"").append(wxButton.getName()).append("\"").append(","); if(wxButton.getSub_buttons().size() > 0){ sb.append("\"").append("sub_button").append("\"").append(":").append("["); StringBuffer subStringBuffer = new StringBuffer(""); for (WxButton sub : wxButton.getSub_buttons()) { subStringBuffer.append("{"); subStringBuffer.append("\"").append("name").append("\"").append(":").append("\"").append(sub.getName()).append("\"").append(","); subStringBuffer.append("\"").append("type").append("\"").append(":").append("\"").append(sub.getType().toLowerCase()).append("\"").append(","); if(ButtonType.CLICK.toString().equalsIgnoreCase(sub.getType())){ subStringBuffer.append("\"").append("key").append("\"").append(":").append("\"").append(sub.getKey()).append("\"").append(","); }else{ subStringBuffer.append("\"").append("url").append("\"").append(":").append("\"").append(sub.getUrl()).append("\"").append(","); } if(subStringBuffer.indexOf(",") > -1){ subStringBuffer.deleteCharAt(subStringBuffer.lastIndexOf(",")); } subStringBuffer.append("}").append(","); } if(subStringBuffer.indexOf(",") > -1){ subStringBuffer.deleteCharAt(subStringBuffer.lastIndexOf(",")); } sb.append(subStringBuffer).append("]"); }else{ sb.append("\"").append("type").append("\"").append(":").append("\"").append(wxButton.getType().toLowerCase()).append("\"").append(","); if(ButtonType.CLICK.toString().equalsIgnoreCase(wxButton.getType())){ sb.append("\"").append("key").append("\"").append(":").append("\"").append(wxButton.getKey()).append("\"").append(","); }else{ sb.append("\"").append("url").append("\"").append(":").append("\"").append(wxButton.getUrl()).append("\"").append(","); } if(sb.indexOf(",") > -1){ sb.deleteCharAt(sb.lastIndexOf(",")); } } sb.append("}").append(","); } if(sb.indexOf(",") > -1){ sb.deleteCharAt(sb.lastIndexOf(",")); } sb.append("]}"); return sb.toString(); }
WxButton 菜单按钮类:
package com.lqy.spring.iwx.bean.weixin; import java.util.ArrayList; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Transient; import com.lqy.spring.iwx.bean.BaseBean; @Entity(name="wx_button") public class WxButton extends BaseBean { private static final long serialVersionUID = -8474453778646031334L; /** * 菜单标题,不超过16个字节,子菜单不超过40个字节 * 一级菜单最多4个汉字,二级菜单最多7个汉字 */ protected String name; /** * 菜单的响应动作类型 */ protected String type; /** * 菜单KEY值,用于消息接口推送,不超过128字节 */ protected String key; /** * 网页链接,用户点击菜单可打开链接,不超过1024字节 */ protected String url; /** * 调用新增永久素材接口返回的合法media_id */ protected String media_id; /** * 二级菜单数组,个数应为1~5个 */ protected List<WxButton> sub_buttons = new ArrayList<WxButton>(); protected WxButton wxButtonParent; @Column(length=20,nullable=false) public String getName() { return name; } public void setName(String name) { this.name = name; } @Column(nullable=false) public String getType() { return type; } public void setType(String type) { this.type = type; } @Column(length=64,unique=true,name="`key`") public String getKey() { return key; } public void setKey(String key) { this.key = key; } @Column public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } @Column(unique=true) public String getMedia_id() { return media_id; } public void setMedia_id(String media_id) { this.media_id = media_id; } @Transient public List<WxButton> getSub_buttons() { return sub_buttons; } public void setSub_buttons(List<WxButton> sub_buttons) { this.sub_buttons = sub_buttons; } @ManyToOne(fetch=FetchType.EAGER, optional=true) @JoinColumn(name="wx_button_parent_uid") public WxButton getWxButtonParent() { return wxButtonParent; } public void setWxButtonParent(WxButton wxButtonParent) { this.wxButtonParent = wxButtonParent; } @Override public String toString() { return "WxButton [name=" + name + ", type=" + type + ", key=" + key + ", url=" + url + ", media_id=" + media_id + ", sub_buttons=" + sub_buttons + ", wxButtonParent=" + wxButtonParent + ", uid=" + uid + ", createTime=" + createTime + ", createUser=" + createUser + ", updateTime=" + updateTime + ", updateUser=" + updateUser + ", startTime=" + startTime + ", endTime=" + endTime + ", statusType=" + statusType + ", ipAddress=" + ipAddress + ", remark=" + remark + "]"; } }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
蕃薯耀 2016年3月31日 22:22:53 星期四
http://fanshuyao.iteye.com/
相关文章
- 微信支付(公众号支付APIJS、app支付)服务端统一下单接口java版
- 实例解析java + jQuery + json工作过程(获取JSON数据)
- java泛型【收藏】
- Java实现 LeetCode 面试题 01.07. 旋转矩阵(按照xy轴转+翻转)
- Java实现 LeetCode 646 最长数对链(暴力)
- Java实现 LeetCode 622 设计循环队列(暴力大法)
- Java实现 LeetCode 228 汇总区间
- Java实现三人年龄
- Json字符串转换为java对象的各种实现方法【json_lib框架、Gson、org.json】
- 【JAVA】MacBook安装Java环境及eclipse
- 【JAVA】Java循环语句中的continue跳转进入下一次循环是否判断循环条件
- 【JAVA】java中的length和length()
- [Java Spring] Implementing Spring Security
- Atitit java播放器调音速率快慢的实现 目录 1.1. 原理 本质上是改变采样率即可1 2. 使用Java增加/降低AudioInputStream的音频播放速度(Increase/dec
- 【java】Java经典面试题整理(附答案)
- 【Java】java 环境配置(详细教程)
- 【java】Java教程
- 每天5道面试题(二)java基础
- Java学习路线-22:开发支持类库UUID、Optional、ThreadLocal、TimerTask、Base64
- Java动态追踪技术探究(动态修改)
- java-mybaits-016-mybatis知识点StatementType
- 【LeetCode-面试算法经典-Java实现】【130-Surrounded Regions(围绕区域)】
- Java反射获取Android系统属性值
- Java源码详解之NameValuePair
- Java基础——System.exit(1) 和 system.exit(0)用法与作用
- 【java】Java IO体系总览
- Java容器解析——HashMap
- JAVA开发讲义(二)-Java程序设计之数据之谜四