javascript - echarts数据填写出错

查看:92
本文介绍了javascript - echarts数据填写出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

    $.ajax({
        type: "post",
        url: "__MODULE__/Index/kline",
        data : "product=meiyuanzhishu" +"&min="+5,   //注意这里必须用=
        async: false,
        success: function (data) {

            console.log(data);
            
            //直接填写数据是正确的
            data0 = splitData([['20:30',94.183,94.197,94.179,94.205],['20:35',94.201,94.131,94.129,94.201],['20:40',94.137,94.158,94.117,94.164],['20:45',94.157,94.155,94.141,94.166],['20:50',94.155,94.112,94.107,94.163],['20:55',94.115,94.079,94.07,94.115],['21:00',94.077,94.128,94.074,94.128],['21:05',94.125,94.129,94.11,94.132],['21:10',94.129,94.144,94.111,94.15],['21:15',94.147,94.138,94.132,94.153],['21:20',94.138,94.149,94.128,94.155],['21:25',94.149,94.116,94.116,94.155],['21:30',94.124,94.11,94.104,94.128],['21:35',94.11,94.104,94.096,94.113],['21:40',94.109,94.133,94.107,94.134],]);

        }
    });

但是这样 书写data


 $.ajax({
        type: "post",
        url: "__MODULE__/Index/kline",
        data : "product=meiyuanzhishu" +"&min="+5,   //注意这里必须用=
        async: false,
        success: function (data) {

            console.log(data);
                //data和上面的数据一样
            data0 = splitData(data);

        }
    });

data是一样的,为什么会报错,是因为数据类型不一样?、

解决方案

  • jQuery.ajax返回回来的,可能是一个对象(或者数组),也可能是HTML源码(或者是直接输出的内容,为文本形式)

  • 以上情况,首先是根据dataType配置判断的,如果设置了可以识别的dataType,则会尝试将返回结果按照dataType指定的值来识别,但是如果按照dataType转换失败的话,就会以原数据(也就是纯文本)返回

  • 如果没有配置dataType,则会根据传输头,或者猜测数据格式,但是同样的,如果转换失败,就会以元数据返回

  • jQuery.ajax默认解析JSON的方法是JSON.parse(),也就是说,要让它返回数据为数组,也就需要你的数据可以被JSON.parse()解析成数组,否则就是以纯文本返回

  • 但是由于你的这个数组,并不是标准的JSON格式,数组最后多了一个逗号([[ ... ], ..., [ ... ],]),所以JSON.parse()无法解析,所以你返回回来的,是一个String类型的,所以无法使用splitData进行处理。

这篇关于javascript - echarts数据填写出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆