Foxtable(狐表)用户栏目专家坐堂 → 求助:JSON格式数据解析


  共有3668人关注过本帖树形打印复制链接

主题:求助:JSON格式数据解析

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110528 积分:562524 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/11 23:10:00 [显示全部帖子]

汗,第一次用这玩意,居然不能强类型引用

Dim json As String  =  jsonString 

Dim ScriptControl As Object, data  As Object, JscriptCode As String
JscriptCode = "function toObject(json) {eval(""var o=""+json);return o;}"
ScriptControl = CreateObject("MSScriptControl.ScriptControl")
With ScriptControl
    .Language = "Javascript"
    .Timeout = -1
    .AddCode(JscriptCode)
    data = .Run("toObject", json)
End With
For Each obj As object In data.item
    Output.Show(obj.media_id)
    For Each item As object In obj.content.news_item
        Output.Show(item.title)
    Next
Next


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110528 积分:562524 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/12 20:13:00 [显示全部帖子]

Dim dr As DataRow
For Each obj As object In data.item
    For Each item As object In obj.content.news_item
        dr = DataTables("表A").AddNew
        dr("media_id") = obj.media_id
        dr("update_time") = obj.update_time
        dr("title") = item.title
        dr("url") = item.url
    Next
Next

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110528 积分:562524 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/12 20:50:00 [显示全部帖子]

msgbox(json)看看是什么内容

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110528 积分:562524 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/12 21:47:00 [显示全部帖子]

没有其它办法。

也没有必要每次都从接口全量下载这些数据。

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110528 积分:562524 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/12 22:17:00 [显示全部帖子]

公众号是你自己的,向怎么做都可以。微信接口又有创建,更新和删除的操作。就像操作表格一样就行

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110528 积分:562524 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/13 22:27:00 [显示全部帖子]

Javascript是大小写敏感 的,要关闭代码编辑器的着色功能

'...
Dim postdata As String ="{""begin_date"": ""2015-10-13"", ""end_date"": ""2015-10-13""}"
Dim url = String.Format("https://api.weixin.qq.com/datacube/getarticlesummary?access_token=jWwr17bx9IlRG__YdtKfJfLzUzLecGInR8Rq2T5EiOlvjW5DJIcuyZe3A9D2OgZ5FcoM3g3Ydbyh5O9bfI3rx_R7sNv3aw5WecBJvpuzPx4v01ZmjpEXEi9Wt89yjo_WVXZhAEAIKM")
Using ms As New System.IO.MemoryStream()
Dim bytes = ConvertHelper.EncodingToBytes(postdata, System.Text.Encoding.UTF8)
ms.Write(bytes, 0, bytes.Length)
ms.Seek(0, System.IO.SeekOrigin.Begin)
Dim json As String = Functions.Execute("HttpPost",url, ms)
Dim ScriptControl As Object, data  As Object, JscriptCode As String
JscriptCode = "function toObject(json) {eval(""var o=""+json);return o;}"
ScriptControl = CreateObject("MSScriptControl.ScriptControl")
With ScriptControl
    .Language = "Javascript"
    .Timeout = -1
    .AddCode(JscriptCode)
    data = .Run("toObject", json)
End With


For Each obj As object In data.list
    output.Show(obj.title)
Next
End Using

 回到顶部