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数据。

实际上我在编写上面这段实例代码时,已经考虑到你未来的需要,你可以很轻松地将上面这段代码改为根据数据表中的行遍历生成,这在《微信接口》这一章会有介绍。


本页地址:http://www.foxtable.com/mobilehelp/topics/0253.htm