JSON生成实例
在后面学习微信接口的时候,你会发现很多数据都需要用JSON格式提交到微信服务器。
例如下面是一个JSON格式的微信菜单数据,我们将这段数据提交到微信相关接口后,可以生成一个微信菜单。
这个菜单包括两个顶层按钮,第一个顶层按钮"今日歌曲"是一个普通按钮,第二个顶层按钮"功能"是一个菜单,这个菜单包括三个子菜单按钮,分别是"搜索"、"视频"和"赞一下我们":
{
"button": [
{
"type": "click",
"name": "今日歌曲",
"key": "V1001_TODAY_MUSIC"
},
{
"name": "功能",
"sub_button": [
{
"type": "view",
"name": "搜索",
"url": "http://www.soso.com/"
},
{
"type": "view",
"name": "视频",
"url": "http://v.qq.com/"
},
{
"type": "click",
"name": "赞一下我们",
"url": "V1001_GOOD"
}
]
}
]
}
我们可以用代码生成以上格式的数据,请务必仔细体会:
Dim
mnu As
New JObject
'菜单对象
Dim
button As
New
JArray
mnu("button")
= button
'菜单对象只有一个属性button,这个是一个数组,包括所有顶层菜单按钮.
'增加第一个顶层按钮.
button.Add(New
Jobject)
button(0)("type")
= "click"
button(0)("name")
= "今日歌曲"
button(0)("key")
= "V1001_TODAY_MUSIC"
'增加第二个顶层按钮,这个按钮其实是一个菜单.
button.Add(New
Jobject)
button(1)("name")
= "功能"
button(1)("sub_button")
= New Jarray
'第二个顶层按钮的sub_button属性是一个数组,包括所有的子菜单按钮
Dim
SubButton
As
JArray
=
button(1)("sub_button")
'为方便后面的编码,将子菜单数组保存在变量SubButton中
'增加第一个子菜单按钮
SubButton.Add(New
Jobject)
SubButton(0)("type")
= "view"
SubButton(0)("name")
= "搜索"
SubButton(0)("url")
= "http://www.soso.com/"
'增加第二个子菜单按钮
SubButton.Add(New
Jobject)
SubButton(1)("type")
= "view"
SubButton(1)("name")
= "视频"
SubButton(1)("url")
= "http://v.qq.com/"
'增加第三个子菜单按钮
SubButton.Add(New
Jobject)
SubButton(2)("type")
= "click"
SubButton(2)("name")
= "赞一下我们"
SubButton(2)("url")
= "V1001_GOOD"
Output.Show(mnu.ToString)
'生成JSON字符串
你也许觉得代码有点长,因为这是"硬"生成,但是自行用工具编写JSON数据非常繁琐,也很容易出错,多数时候我们会通过数据表输入菜单设置,然后用代码遍历数据表中的行自动生成JSON数据。
实际上我在编写上面这段实例代码时,已经考虑到你未来的需要,你可以很轻松地将上面这段代码改为根据数据表中的行遍历生成,这在《微信接口》这一章会有介绍。