Foxtable(狐表)用户栏目专家坐堂 → [求助]JSON数据


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

主题:[求助]JSON数据

帅哥哟,离线,有人找我吗?
ymjr2011
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:544 积分:7290 威望:0 精华:0 注册:2011/6/22 20:16:00
[求助]JSON数据  发帖心情 Post By:2018/6/12 14:54:00 [只看该作者]

echarts的 data数据构成 
           data:[
                {value:335, name:'直接访问'},
                {value:310, name:'邮件营销'},
                {value:274, name:'联盟广告'},
                {value:235, name:'视频广告'},
                {value:400, name:'搜索引擎'}
            ]


Dim Products As List(Of String)
Products = DataTables("表A").GetValues("machineId","日期 >= '" & d1 & "' and 日期 < '" & d1.AddDays(1) & "'")
Dim ii As Integer
For Each Product As String In Products    想返回表A是machineid不重复的字段做为  name
    ,  把表A的count(sumCycJob)做为 value
Next

请问如何写?我写的都不对,只有一条数据!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/12 15:04:00 [只看该作者]

直接合成字符串就可以了

 

Dim str As String = ""
For Each Product As String In Products
    Dim count As String = DataTables("表A").compute("count(machineId)","machineid = '" & product & "' and 日期 >= '" & d1 & "' and 日期 < '" & d1.AddDays(1) & "'")
    str &= "{value:" & count & ", name:'" & product & "'},"
Next
str = str.trim(",")
msgbox(str)


 回到顶部
帅哥哟,离线,有人找我吗?
ymjr2011
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:544 积分:7290 威望:0 精华:0 注册:2011/6/22 20:16:00
  发帖心情 Post By:2018/6/12 15:48:00 [只看该作者]

解析出来好像有问题。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/12 15:55:00 [只看该作者]

1、你生成的字符串,最后是什么?

 

2、你在js里面获取得到字符串后,如何转换成json的?贴出代码。


 回到顶部
帅哥哟,离线,有人找我吗?
ymjr2011
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:544 积分:7290 威望:0 精华:0 注册:2011/6/22 20:16:00
  发帖心情 Post By:2018/6/12 16:07:00 [只看该作者]

Dim Products As List(Of String)
Products = DataTables("表A").GetValues("machineId","日期 >= '" & d1 & "' and 日期 < '" & d1.AddDays(1) & "'")
Dim jo As New JObject
For Each Product As String In Products
    Dim count As String = DataTables("表A").compute("count(machineId)","machineid = '" & product & "' and 日期 >= '" & d1 & "' and 日期 < '" & d1.AddDays(1) & "'")
    str22 &= "{value:" & count & ", name:'" & product & "'},"
Next
str22 = str22.trim(",")

JO("cpclfb") = "[" & str22 & "]"




以下是 option
    title : {
        text: '某站点用户访问来源',
        subtext: '纯属虚构',
        x:'center'
    },
    tooltip : {
        trigger: 'item',
        formatter: "{a} <br/>{b} : {c} ({d}%)"
    },
    legend: {
        orient: 'vertical',
        left: 'left',
        data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']
    },
    series : [
        {
            name: '访问来源',
            type: 'pie',
            radius : '55%',
            center: ['50%', '60%'],
            data:mydata.cpclfb
            itemStyle: {
                emphasis: {
                    shadowBlur: 10,
                    shadowOffsetX: 0,
                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
            }
        }
    ]

以下JS

var getData = function getData(){
    var myChart2 = echarts.init(document.getElementById('chart_map'), 'macarons');

   $.get('getdata.htm?type=1').done(function (jsonstr) {
        var mydata = eval('(' + jsonstr + ')');
        myChart2.setOption({
    title : {
        text: '来源',
        subtext: '纯属虚构',
        x:'center'
    },
    tooltip : {
        trigger: 'item',
        formatter: "{a} <br/>{b} : {c} ({d}%)"
    },
    legend: {
        orient: 'vertical',
        left: 'left',
        data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']
    },
    series : [
        {
            name: '访问来源',
            type: 'pie',
            radius : '55%',
            center: ['50%', '60%'],
            data:mydata.cpclfb
            itemStyle: {
                emphasis: {
                    shadowBlur: 10,
                    shadowOffsetX: 0,
                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
            }
        }
    ]
        });
});



   setTimeout("getData()",2000);

}

setTimeout(function () {
    getData();
}, 2000);


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/12 16:23:00 [只看该作者]

如果要赋值给json,参考代码

 

Dim jo As New JObject
Dim ja As New JArray
jo("test") =  ja
Dim i As Integer = 0
For Each r As Row In Tables("表A").rows
    ja.Add(New JObject) '给数组添加两个对象成员
    ja(i)("value") = 123
    ja(i)("name") = "abc"
    i += 1
Next
Output.Show(jo.ToString)

 

发送之前,请先弹出生成的json是否正确。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/12 16:23:00 [只看该作者]

如果你确实不会做,上传具体实例测试。

 回到顶部
帅哥哟,离线,有人找我吗?
ymjr2011
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:544 积分:7290 威望:0 精华:0 注册:2011/6/22 20:16:00
  发帖心情 Post By:2018/6/12 16:51:00 [只看该作者]

谢谢好了:
Dim Products As List(Of String)
Products = DataTables("表A").GetValues("machineId","日期 >= '" & d1 & "' and 日期 < '" & d1.AddDays(1) & "'")
jo("cpclfb") = ja
Dim i As Integer =0 
For Each product As String In products
    ja.add (new JObject)
    ja(i)("name") = product
    Dim ii As Integer =  DataTables("表A").compute("count(machineId)","machineid = '" & product & "' and 日期 >= '" & d1 & "' and 日期 < '" & d1.AddDays(1) & "'")
    ja(i)("value")=  ii
i+=1
Next

 回到顶部