Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用';在';操作员搜索';长度';_Javascript_C#_Jquery_Json_Wcf - Fatal编程技术网

Javascript 无法使用';在';操作员搜索';长度';

Javascript 无法使用';在';操作员搜索';长度';,javascript,c#,jquery,json,wcf,Javascript,C#,Jquery,Json,Wcf,我的网站从我的WCF服务接收以下字符串: [ { "Value": 5, "Color": "#44A9FF", "HighlightColor": "#5AD3D1", "Label": "N/A" }, { "Value": 79, "Color": "#009900", "HighlightColor": "#5AD3D1", "Label

我的网站从我的WCF服务接收以下字符串:

[
    {
        "Value": 5,
        "Color": "#44A9FF",
        "HighlightColor": "#5AD3D1",
        "Label": "N/A"
    },
    {
        "Value": 79,
        "Color": "#009900",
        "HighlightColor": "#5AD3D1",
        "Label": "On Track"
    },
    {
        "Value": 31,
        "Color": "#66FF33",
        "HighlightColor": "#5AD3D1",
        "Label": "Done"
    },
    {
        "Value": 4,
        "Color": "#F3F300",
        "HighlightColor": "#5AD3D1",
        "Label": "Issue"
    },
    {
        "Value": 7,
        "Color": "#FF0000",
        "HighlightColor": "#5AD3D1",
        "Label": "Behind"
    },
    {
        "Value": 9,
        "Color": "#979797",
        "HighlightColor": "#5AD3D1",
        "Label": "Abandoned"
    }
]
但由于某些原因,我不能使用
$。每个
都可以,但我发誓我以前在类似的结构上调用过。它只给了我以下错误:

Uncaught TypeError: Cannot use 'in' operator to search for 'length' in [{"Value":5,"Color":"#44A9FF","HighlightColor":"#5AD3D1","Label":"N/A"},{"Value":79,"Color":"#009900","HighlightColor":"#5AD3D1","Label":"On Track"},{"Value":31,"Color":"#66FF33","HighlightColor":"#5AD3D1","Label":"Done"},{"Value":4,"Color":"#F3F300","HighlightColor":"#5AD3D1","Label":"Issue"},{"Value":7,"Color":"#FF0000","HighlightColor":"#5AD3D1","Label":"Behind"},{"Value":9,"Color":"#979797","HighlightColor":"#5AD3D1","Label":"Abandoned"}] (10:24:26:561 | error, javascript)
    at s (public_html/js/jquery-2.1.4.min.js:2:4004)
    at n.extend.each (public_html/js/jquery-2.1.4.min.js:2:2737)
    at (anonymous function) (public_html/js/test/chart-test.js:42:11)
    at j (public_html/js/jquery-2.1.4.min.js:2:26925)
    at k.fireWith (public_html/js/jquery-2.1.4.min.js:2:27738)
    at x (public_html/js/jquery-2.1.4.min.js:4:11253)
    at (anonymous function) (public_html/js/jquery-2.1.4.min.js:4:14765)
> 
据我所知,我不能在一个字符串上使用
$。每个
,但我认为我把它做成了一个对象。我的JavaScript如下所示:

$.getJSON("http://localhost:52535/PUendeligService.svc/GetStatusOverview", function (data) {
    var object = $.parseJSON(data);
    var parsedData = [];
    $.each(object, function () {
        var value = object["Value"];
        var color = object["Color"];
        var highLight = object["HighlightColor"];
        var label = object["Label"];
        parsedData.push(
                {
                    value: value,
                    color: color,
                    highlight: highLight,
                    label: label
                }
        );
    });
    var ctx = $('#myChart').get(0).getContext('2d');
    var myPieChart = new Chart(ctx).Pie(parsedData, options);
    var myPieChartLegend = $('#pie-chart-legend-tbody');
    var tBodyContent = '';
    var valueTotal = 0;
    $.each(data, function (index) {
        var value = data[index]["value"];
        valueTotal += value;
    });
    $.each(data, function (index) {
        var value = data[index]["value"];
        var color = data[index]["color"];
        var label = data[index]["label"];
        var element =
                '<tr>' +
                '<td>' +
                '<span class="fa fa-square" style="color:' + color + '"></span>\t' + label +
                '</td>' +
                '<td>' +
                value +
                '</td>' +
                '<td>' +
                ((value / valueTotal) * 100).toFixed(2) +
                '</td>' +
                '</tr>';
        tBodyContent += element;
    });
    tBodyContent +=
            '<tr>' +
            '<td>Total</td>' +
            '<td>' + valueTotal + '</td>' +
            '<td>' + 100 + '</td>' +
            '</tr>';
    myPieChartLegend.html(tBodyContent);
});
$.getJSON(“http://localhost:52535/PUendeligService.svc/GetStatusOverview,函数(数据){
var object=$.parseJSON(数据);
var parsedData=[];
$.each(对象、函数(){
变量值=对象[“值”];
变量颜色=对象[“颜色”];
var highLight=object[“HighlightColor”];
变量标签=对象[“标签”];
parsedData.push(
{
价值:价值,
颜色:颜色,
亮点:亮点,
标签:标签
}
);
});
var ctx=$('#myChart').get(0.getContext('2d');
var myPieChart=新图表(ctx).Pie(解析数据,选项);
var myPieChartLegend=$(“#饼图图例tbody”);
var tBodyContent='';
var valueTotal=0;
$。每个(数据、函数(索引){
var值=数据[指数][“值”];
valueTotal+=价值;
});
$。每个(数据、函数(索引){
var值=数据[指数][“值”];
var color=数据[索引][“颜色”];
var标签=数据[索引][“标签”];
变量元素=
'' +
'' +
'\t'+标签+
'' +
'' +
价值观+
'' +
'' +
((价值/价值总额)*100)固定(2)+
'' +
'';
tBodyContent+=元素;
});
tBodyContent+=
'' +
“总计”+
''+valueTotal+''值+
'' + 100 + '' +
'';
html(tBodyContent);
});
为不起作用的示例运行的C代码:

public String GetStatusOverview()
    {
        StatusOverviewObject soo = new StatusOverviewObject();
        soo.Value = 5;
        soo.Color = "#44A9FF";
        soo.HighlightColor = "#5AD3D1";
        soo.Label = "N/A";
        StatusOverviewObject soo2 = new StatusOverviewObject();
        soo2.Value = 79;
        soo2.Color = "#009900";
        soo2.HighlightColor = "#5AD3D1";
        soo2.Label = "On Track";
        StatusOverviewObject soo3 = new StatusOverviewObject();
        soo3.Value = 31;
        soo3.Color = "#66FF33";
        soo3.HighlightColor = "#5AD3D1";
        soo3.Label = "Done";
        StatusOverviewObject soo4 = new StatusOverviewObject();
        soo4.Value = 4;
        soo4.Color = "#F3F300";
        soo4.HighlightColor = "#5AD3D1";
        soo4.Label = "Issue";
        StatusOverviewObject soo5 = new StatusOverviewObject();
        soo5.Value = 7;
        soo5.Color = "#FF0000";
        soo5.HighlightColor = "#5AD3D1";
        soo5.Label = "Behind";
        StatusOverviewObject soo6 = new StatusOverviewObject();
        soo6.Value = 9;
        soo6.Color = "#979797";
        soo6.HighlightColor = "#5AD3D1";
        soo6.Label = "Abandoned";

        List<StatusOverviewObject> list = new List<StatusOverviewObject>();
        list.Add(soo);
        list.Add(soo2);
        list.Add(soo3);
        list.Add(soo4);
        list.Add(soo5);
        list.Add(soo6);

        return JsonConvert.SerializeObject(list);
    }
公共字符串GetStatusOverview()
{
StatusOverviewObject soo=新的StatusOverviewObject();
soo.值=5;
soo.Color=“#44A9FF”;
soo.HighlightColor=“#5AD3D1”;
soo.Label=“不适用”;
StatusOverviewObject soo2=新的StatusOverviewObject();
soo2.值=79;
soo2.Color=“#009900”;
soo2.HighlightColor=“#5AD3D1”;
soo2.Label=“在轨道上”;
StatusOverviewObject soo3=新的StatusOverviewObject();
soo3.值=31;
soo3.Color=“#66FF33”;
soo3.HighlightColor=“#5AD3D1”;
soo3.Label=“完成”;
StatusOverviewObject soo4=新的StatusOverviewObject();
soo4.值=4;
soo4.Color=“#f300”;
soo4.HighlightColor=“#5AD3D1”;
soo4.Label=“问题”;
StatusOverviewObject soo5=新的StatusOverviewObject();
5.值=7;
soo5.Color=“#FF0000”;
soo5.HighlightColor=“#5AD3D1”;
soo5.Label=“Behind”;
StatusOverviewObject soo6=新的StatusOverviewObject();
soo6.值=9;
soo6.Color=“#9797”;
soo6.HighlightColor=“#5AD3D1”;
soo6.Label=“放弃”;
列表=新列表();
列表。添加(soo);
列表。添加(soo2);
列表。添加(soo3);
列表。添加(soo4);
增加(5);
列表。添加(soo6);
返回JsonConvert.SerializeObject(列表);
}

您的代码中有3个
$。每个

第一个实例获取名为object的JSON实例,并填充数组
parsedData

问题是在其余的迭代器中,您正在向它们传递
数据
(JSON字符串)。您应该将
parsedData
实例传递给他们

$.each(parsedData, function (index) {       //"parsedData" instead of "data"
        var value = this[index]["value"];   //you can use "this" to access the object passed in argument
        valueTotal += value;
    });
$.each(parsedData, function (index) {      //"parsedData" instead of "data"
    var value = this[index]["value"];
    var color = this[index]["color"];
    var label = this[index]["label"];
    var element =
            '<tr>' +
            '<td>' +
            '<span class="fa fa-square" style="color:' + color + '"></span>\t' + label +
            '</td>' +
            '<td>' +
            value +
            '</td>' +
            '<td>' +
            ((value / valueTotal) * 100).toFixed(2) +
            '</td>' +
            '</tr>';
    tBodyContent += element;
});
$。每个(parsedData,函数(索引){//“parsedData”而不是“data”
var value=this[index][“value”];//您可以使用“this”访问传入参数的对象
valueTotal+=价值;
});
$.each(parsedData,函数(索引){//“parsedData”而不是“data”
var值=该[指数][“值”];
var color=此[索引][“颜色”];
var label=此[索引][“标签”];
变量元素=
'' +
'' +
'\t'+标签+
'' +
'' +
价值观+
'' +
'' +
((价值/价值总额)*100)固定(2)+
'' +
'';
tBodyContent+=元素;
});

您的代码中各有3个。哪一行出错?我将其更改为parsedData,但现在它显示了一个“未定义”的图例,并且没有数据或饼图。