Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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 检查特定字符串的JSON内容_Javascript_Jquery_Html_Json_Json.net - Fatal编程技术网

Javascript 检查特定字符串的JSON内容

Javascript 检查特定字符串的JSON内容,javascript,jquery,html,json,json.net,Javascript,Jquery,Html,Json,Json.net,我一直在学习,我想我终于完成了这个我一直在奋斗的小“项目”!我见过一些类似的主题,但不能完全适应我的需要的代码 我有一个正确显示的JSON输出,我希望通过它搜索特定的值,并且只将这些结果粘贴到表中 我有下面的Javascript,它获取XML数据并将其粘贴到表中 Javascript var html = '<table id="myTable"><thead><tr><th>Entry</th>'; for ( row = 0

我一直在学习,我想我终于完成了这个我一直在奋斗的小“项目”!我见过一些类似的主题,但不能完全适应我的需要的代码

我有一个正确显示的JSON输出,我希望通过它搜索特定的值,并且只将这些结果粘贴到表中

我有下面的Javascript,它获取XML数据并将其粘贴到表中

Javascript

var html = '<table id="myTable"><thead><tr><th>Entry</th>';
    for ( row = 0; row < jsondata.rowCount; row++ )
    {
        html += "<tr><td>" + (row+1) + "</td>";
        for ( column = 0; column < jsondata.columnCount; column++ )
        {
            if((jsondata.xmlData [ row ] [ column ]) == "Ninja")
            {
                html += "<td>" + jsondata.xmlData [ row ] [ column ] + "</td>"
            }

            alert(jsondata.xmlData [ row ] [ column ]); //Added in edit - "undefined"
        }
        html += "</tbody></table>";
        $("#tablearea").html(html);
    }

如果我排除If语句,它会将其全部粘贴,但是If(在使用警报测试时)状态为
未定义

似乎您的rowCount和/或columCount与数组的实际长度不匹配(可能只是切换)

无论如何,我建议直接检索数组的长度

var html = '<table id="myTable"><thead><tr><th>Entry</th>';
for ( row = 0; row < jsondata.xmlData.length; row++ )
{
    html += "<tr><td>" + (row+1) + "</td>";
    for ( column = 0; column < jsondata.xmlData[row].length; column++ )
    {
        if((jsondata.xmlData [ row ] [ column ]) == "Ninja")
        {
            html += "<td>" + jsondata.xmlData [ row ] [ column ] + "</td>"
        }

    }
    html += "</tbody></table>";
    $("#tablearea").html(html);
}
var html='Entry';
for(行=0;行
编辑(更简洁):

我相信您的问题在于rowCount成员与实际行数不匹配。可以使用数组的.length属性,或者(在给定对象中)可以执行以下操作

var jsondata = {
    rowCount: 3,
    columnCount: 2,
    xmlData: [["Ninja", "Blue"], ["Car", "Red"]]
};

var html =  '<table id="myTable">' +
            '<thead>' +
            '<tr><th>Entry</th><tr>';
html += "<tbody>";
for (row = 0; row < jsondata.rowCount; row++) {
    var showRow = false;
    var tempHtml = "<tr>";
    for (column = 0; column < jsondata.columnCount; column++) {
        if (jsondata.xmlData[row]) {
            tempHtml += "<td>" + jsondata.xmlData[row][column] + "</td>";
            showRow = (jsondata.xmlData[row][column] == "Ninja") || showRow;
        }
    }
    tempHtml += "</tr>";
    if (showRow) {
        html += tempHtml;
    }
}
html += "</tbody></table>";
$("#tablearea").html(html);
var jsondata={
行数:3,
列数:2,
xmlData:[[“忍者”,“蓝色”],[“汽车”,“红色”]]
};
var html=''+
'' +
“进入”;
html+=“”;
对于(行=0;行
您可以共享一段json数据吗?或者更好的是,您可以创建一个fiddle吗?您是否尝试foreach或循环json数组以匹配该值?您将警报放在何处?请在代码中显示它。@user3059001-我没有,这样的循环的语法是什么?至少可以说,查找文档很棘手!不是真的——谷歌javascript foreach——这非常有效。但是,当使用外部JSON文件时,它会崩溃!但我最好自己去想办法!非常感谢。
var jsondata = {
    rowCount: 3,
    columnCount: 2,
    xmlData: [["Ninja", "Blue"], ["Car", "Red"]]
};

var html =  '<table id="myTable">' +
            '<thead>' +
            '<tr><th>Entry</th><tr>';
html += "<tbody>";
for (row = 0; row < jsondata.rowCount; row++) {
    var showRow = false;
    var tempHtml = "<tr>";
    for (column = 0; column < jsondata.columnCount; column++) {
        if (jsondata.xmlData[row]) {
            tempHtml += "<td>" + jsondata.xmlData[row][column] + "</td>";
            showRow = (jsondata.xmlData[row][column] == "Ninja") || showRow;
        }
    }
    tempHtml += "</tr>";
    if (showRow) {
        html += tempHtml;
    }
}
html += "</tbody></table>";
$("#tablearea").html(html);