如何正确使用javascript中的getJSON函数?

时间:2016-12-26 10:44:22

标签: javascript jquery html

我有服务器端URL打印这些json数据。

{
  "data_list": [
    {
      "Y_Value": value1, 
      "X_value": value2,
    }, 
    {
      "Y_value": value3, 
      "X_value": value4, 
    }, 
  ]
}

我想把网址,把它放在链接到html文件的javascript文件中,在网页浏览器中将其显示为图表/图表。

以下是javascript文件的片段。

$(function () {
....
....
....
//some code
var line = new Morris.Line({
    element: 'line-chart',
    resize: true,
    data: [
    $.getJSON("http://<url>/mydata", function(data){
    console.log(data);
    var data_list = [];
    );
    }
],
ykey: ['Y_value'],
xkey: ['X_value'],
labels: ['Testing JSON get function'],
lineColors: ['#efefef'],
lineWidth: 2,
hideHover: 'auto',
gridTextColor: '#fff',
gridStrokeWidth: 0.4,
pointSize: 4,
pointStrokeColors: ["#efefef"],
gridLineColor: "#efefef",
gridTextFamily: "Open Sans",
gridTextSize: 10

});
});

以下是我的html文件的片段

{% extends "base.html" %}

{% block content %}
  <!-- Content Wrapper. Contains page content -->
  <div class="content-wrapper">
    <!-- Content Header (Page header) -->
    <section class="content-header">
      <h1>
        Dashboard
        <small>Control panel</small>
      </h1>
      <ol class="breadcrumb">
        <li><a href="#"><i class="fa fa-dashboard"></i> Home</a></li>
        <li class="active">Dashboard</li>
      </ol>
    </section>

    <!-- Main content -->
    <section class="content">
    ...
    ...
    ...
    (some other code)
    ...
    <div class="row">
    <!-- Left col -->
    <section class="col-lg-7 connectedSortable">
      <!-- Custom tabs (Charts with tabs)-->
      <div class="nav-tabs-custom">
        <!-- Tabs within a box -->
        <ul class="nav nav-tabs pull-right">
          <li class="active"><a href="#revenue-chart" data-toggle="tab">Area</a></li>
          <li><a href="#sales-chart" data-toggle="tab">Donut</a></li>
          <li class="pull-left header"><i class="fa fa-inbox"></i> Sales</li>
        </ul>
        <div class="tab-content no-padding">
          <!-- Morris chart - Sales -->
          <div class="chart tab-pane active" id="line-chart" style="position: relative; height: 300px;"></div>
          <div class="chart tab-pane" id="sales-chart" style="position: relative; height: 300px;"></div>
        </div>
      </div>

    </section>
    </div>
    </section>
    </div>

我已经在我的

中重新检查了javascript文件的路径
base.html

这是正确的。我输入了一个文件夹名称static。

<script src="{{ url_for('static', filename='dist/js/pages/dashboard.js')}}"></script>

我运行脚本但是当我打开浏览器时,它是空的。我的问题是我错过了剧本中的内容吗?如果我在javascript文件中如何正确实现getJSON函数?

我搜索了该函数,并根据这些链接https://www.sitepoint.com/ajaxjquery-getjson-simple-example/

编写了javascript

http://api.jquery.com/jquery.getjson/

我不擅长使用javascript,谢谢你的帮助。这是我第一次尝试编写javascript,并希望如果有错误,它会打印在终端上,但没有。

2 个答案:

答案 0 :(得分:2)

您需要将Morris.Line()构造函数放在success的{​​{1}}回调中,如下面的代码所示。

$.getJSON()

答案 1 :(得分:0)

您需要使用$.getJSON()获取数据,然后在回调中初始化数据Morris.Line

$.getJSON("http://<url>/mydata", function(data) {
    console.log(data);
    var data_list = data.data_list;
    //some code
    var line = new Morris.Line({
        data: data_list,
        ...
    });
});