JS解析json问题

json如下:

{
  "code": "0",
  "data": [
    [
      "1657245600000",
      "0.77"
    ],
    [
      "1657245300000",
      "0.76"
    ],
    [
      "1657245000000",
      "0.76"
    ],
    [
      "1657244700000",
      "0.75"
    ],
    [
      "1657244400000",
      "0.74"
    ],
    [
      "1657244100000",
      "0.75"
    ]
]
}

循环解析出里面数据。
谢谢!

forEach?

img

let data = {
                "code": "0",
                "data": [
                    [
                        "1657245600000",
                        "0.77"
                    ],
                    [
                        "1657245300000",
                        "0.76"
                    ],
                    [
                        "1657245000000",
                        "0.76"
                    ],
                    [
                        "1657244700000",
                        "0.75"
                    ],
                    [
                        "1657244400000",
                        "0.74"
                    ],
                    [
                        "1657244100000",
                        "0.75"
                    ]
                ]
            }
            data.data.forEach(item=>{
                console.log(item)
            })

你想怎么解析,格式又是怎样

 data = {
                "code": "0",
                "data": [
                    [
                        "1657245600000",
                        "0.77"
                    ],
                    [
                        "1657245300000",
                        "0.76"
                    ],
                    [
                        "1657245000000",
                        "0.76"
                    ],
                    [
                        "1657244700000",
                        "0.75"
                    ],
                    [
                        "1657244400000",
                        "0.74"
                    ],
                    [
                        "1657244100000",
                        "0.75"
                    ]
                ]
            }
            for(let d in data){
                if(typeof(data[d])=='string'){
                    console.log(d,':',data[d]);
                }else{
                    let lst = data[d];
                    for(let l in lst){
                        console.log(d,l,lst[l][0],lst[l][1])
                    }
                }
            }

img


<script>
    $(function () {
        var tree = document.getElementById("duokongren");
        var day=0;
        var getData = function(){
            $.getJSON('https://api.btc126.vip/okexcn.php?from=duokongren&day='+day, function (data) {
                var u = [];
                data.data.forEach(item=>{
                    //console.log(item)
                     $time = parseFloat(item[0]);
                     $price = parseFloat(item[1]);
                     u.push([$time,$price]);
                })
                console.log(u);
    Highcharts.setOptions({global: {useUTC: false}});
    
    var dateTimeLabelFormatsData = {
          millisecond: '%H:%M',
            second: '%H:%M',
            minute: '%H:%M',
            hour: '%H:%M',
            day: '%H:%M',
            week: '%H:%M',
            month: '%H:%M',
            year: '%H:%M'
        }
        if(day === '0'){
          dateTimeLabelFormatsData = {
              minute: '%H:%M',
          }
        } else if(day === '1') {
          dateTimeLabelFormatsData = {
              hour: '%H:%M',          
          }
        } else if(day === '2') {
          dateTimeLabelFormatsData = {
              day: '%m-%d',
          }
    }
    
    $('#duokongren').highcharts({
        chart: {},
        colors: ['#30AD65', '#E35E5E'],
        credits: {enabled: false},
        title: {text: ''},
        xAxis: {
            type: 'datetime',
            dateTimeLabelFormats: dateTimeLabelFormatsData
        },
        tooltip: {
            shared: false, //是否共享提示,也就是X一样的所有点都显示出来
            useHTML: true, //是否使用HTML编辑提示信息
            headerFormat: '{point.key} <br/>',
            pointFormat: '{series.name}:' + '<b>{point.y}</b>',
            footerFormat: ''
        },
        yAxis: {
            title: {text: ''},
            labels: {
                enabled: true,
                formatter: function() {
                    return this.value;
                }
              }
        },
        plotOptions: {
            series: {
                lineWidth: 1.5,
                marker: {enabled: false}
            }
        },
        legend: {enabled: false},
        series: [{
            type: 'line',
            name: '多空比值',
            data: u
            }]
        });
    });
    }

    $('#dayduokongren li').each(function(){
        $(this).click(function(){
        day = $(this).attr("day");
        getData();
        })
    })
        getData();
});
</script>

highcharts显示出来后 提示上的时间不对了。

img

很标准的数据啊,你直接用JSON就可以进行解析的。



<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        let response = {
            "code": "0",
            "data": [
                [
                    "1657245600000",
                    "0.77"
                ],
                [
                    "1657245300000",
                    "0.76"
                ],
                [
                    "1657245000000",
                    "0.76"
                ],
                [
                    "1657244700000",
                    "0.75"
                ],
                [
                    "1657244400000",
                    "0.74"
                ],
                [
                    "1657244100000",
                    "0.75"
                ]
            ]
        };
        function Time(val) {
            let data = new Date(val * 1);
            let year = data.getFullYear();
            let month = data.getMonth();
            let day = data.getDate();
            let hour = data.getHours();
            let minute = data.getMinutes();
            let seconds = data.getSeconds();

            return [hour, minute].map(fn).join(':');

            function fn(val1) {
                let val = val1.toString();
                return val[1] ? val1.toString() : '0' + val1
            }
        };

        let X = [], data = [];
        response.data.forEach((item, index) => {
            X.push(Time(item[0]))
            data.push(item[1])
        })

        console.log(X, data)

    </script>
</body>

</html>

img

var str=""
        arr.data.forEach((v,i)=>{
            console.log(v.join(":"))
        })