Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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_Json_Jquery - Fatal编程技术网

Javascript 如何从JSON获取特定数据?

Javascript 如何从JSON获取特定数据?,javascript,json,jquery,Javascript,Json,Jquery,如何从JSON中获取特定数据 JSON: [ { "TotalPageCount": 66 }, { "TotalTitleCount": 199 }, { "Title": "cola" }, { "Title": "elvis tom" }, { "Title":

如何从JSON中获取特定数据

JSON:

[
    { "TotalPageCount":  66 },
    { "TotalTitleCount": 199 },
    { "Title":           "cola" },
    { "Title":           "elvis tom" },
    { "Title":           "dvd" }
]
<script>
    function updateTitlesArea() {
        $.getJSON(
        "/lates/json/",
        null,
        function(data) {
            $("#titlesDiv").html("");
            $("#pagesDiv").html("");
            var x;
            if (data.length > 0) {
                for (x in data) {
                    $("#titlesDiv").html($("#titlesDiv").html() +
                        "<li><a href=\"/" + data[x].Title.replace(/ /g, '-') + "\">" + data[x].Title + "</a>" +
                        "</li>"
                );
                }
            } else {
                $("#titlesDiv").html("<li>no entry</li>");
            }
        });
    }
</script>
Javascript代码:

[
    { "TotalPageCount":  66 },
    { "TotalTitleCount": 199 },
    { "Title":           "cola" },
    { "Title":           "elvis tom" },
    { "Title":           "dvd" }
]
<script>
    function updateTitlesArea() {
        $.getJSON(
        "/lates/json/",
        null,
        function(data) {
            $("#titlesDiv").html("");
            $("#pagesDiv").html("");
            var x;
            if (data.length > 0) {
                for (x in data) {
                    $("#titlesDiv").html($("#titlesDiv").html() +
                        "<li><a href=\"/" + data[x].Title.replace(/ /g, '-') + "\">" + data[x].Title + "</a>" +
                        "</li>"
                );
                }
            } else {
                $("#titlesDiv").html("<li>no entry</li>");
            }
        });
    }
</script>
我对json格式做了一个小改动,将totalpage和title count带到json的末尾

当前:

[
    { "TotalPageCount":  66 },
    { "TotalTitleCount": 199 },
    { "Title":           "cola" },
    { "Title":           "elvis tom" },
    { "Title":           "dvd" }
]
<script>
    function updateTitlesArea() {
        $.getJSON(
        "/lates/json/",
        null,
        function(data) {
            $("#titlesDiv").html("");
            $("#pagesDiv").html("");
            var x;
            if (data.length > 0) {
                for (x in data) {
                    $("#titlesDiv").html($("#titlesDiv").html() +
                        "<li><a href=\"/" + data[x].Title.replace(/ /g, '-') + "\">" + data[x].Title + "</a>" +
                        "</li>"
                );
                }
            } else {
                $("#titlesDiv").html("<li>no entry</li>");
            }
        });
    }
</script>
[{“标题”:“科拉”},{“标题”:“伊尔玛兹” ozdil“},{“标题”:“dvd”},{“标题”:“真是疯了” 深深地“},{”头衔“:“拉科鲁纳的拉科鲁纳”},{”头衔“:“西子七号” kisiyle Sevdiginazin Kisin farkli olmasi“},{“标题”:“kadinlarin bavul” 吉比·坎塔·塔西马拉利,{“头衔”:“霍斯布尔杜姆”},{“头衔”:“萨克” 西巴尼},{“头衔”:“梅夫西姆勒·格瑟肯”},{“头衔”:“比尔·凯雷德·科隆” gibi sicmak,{“标题”:“gelismek”},{“标题”:“faz ve alasim” bilimi,{“标题”:“memetq”},{“标题”:“ogrencilerin sinav kagidina” dustugu ilginc notlar,{“标题”:“cami duvarina” 伊塞梅克},{“标题”:“kufurden sonra tovbe etmek”},{“标题”:“吉达塔里木” 我的名字是“cevre orman ve sehircilik” bakanligi“},{“标题”:“google da nikah masasi” calmak“},{“TotalPageCount”:9},{“TotalTitleCount”:199}]

通过我的代码和给出的示例,我仍然无法获得TotalPageCount和TotalTitleCount

作为记录:也许下次我可以在标题旁边添加更多属性。 所以我想保留json格式

感谢您的支持,这是一个数组,所以

if (data.length > 0) {
    var obj = data[0];   // array, not object
     for (key in obj) { 
          $("#titlesDiv").html(
              $("#titlesDiv").html() +
                 "<li><a href=\"/" + obj[key].Title.replace(/ /g, '-') + "\">" + 
                     obj[key].Title + "</a>" +
                 "</li>"
          );
     }
if(data.length>0){
var obj=data[0];//数组,而不是对象
对于(输入obj){
$(“#titlesDiv”).html(
$(“#titlesDiv”).html()+
“
  • ”+ “
  • ” ); }
    当您在数据中执行
    x时
    会得到对象的每个键。因此,您必须简单地检查它是
    TotalPageCount
    还是
    TotalTitleCount

    <script>
        function updateTitlesArea() {
            $.getJSON(
                "/lates/json/",
                null,
                function(data) {
                    var x, totalPageCount, totalTitleCount;
                    $("#titlesDiv").html("");
                    $("#pagesDiv").html("");
                    if (data.length > 0) {
                        for (x in data) {
                            if('TotalPageCount' == x) {
                                totalPageCount = data[x];
                                continue;
                            }
                            if('TotalTitleCount' == x) {
                                totalTitleCount = data[x];
                                continue;
                            }
                            $("#titlesDiv").html($("#titlesDiv").html() +
                                "<li><a href=\"/" + data[x].Title.replace(/ /g, '-') + "\">" + data[x].Title + "</a>" +
                                "</li>"
                            );
                        }
                        // You can do here whatever you want with 'totalPageCount' and 'totalTitleCount'
                    } else {
                        $("#titlesDiv").html("<li>no entry</li>");
                    }
                });
        }
    </script>
    
    
    函数updateTitlesArea(){
    $.getJSON(
    “/lates/json/”,
    无效的
    功能(数据){
    var x,totalPageCount,totalTitleCount;
    $(“#titlesDiv”).html(“”);
    $(“#pagesDiv”).html(“”);
    如果(data.length>0){
    对于(数据中的x){
    如果('TotalPageCount'==x){
    totalPageCount=数据[x];
    继续;
    }
    如果('TotalTitleCount'==x){
    totalTitleCount=数据[x];
    继续;
    }
    $(“#titlesDiv”).html($(“#titlesDiv”).html()+
    “
  • ”+ “
  • ” ); } //您可以使用“totalPageCount”和“totalTitleCount”在此处执行任何操作 }否则{ $(“#titlesDiv”).html(“
  • 无条目”
  • ”; } }); }
    您使用jQuery对吗?您可以尝试以下方法:

    var prom = $.getJSON('/lates/json/'),
        ar;
    prom.then(function (data) { ar = data; });
    
    之后,您将在ar中拥有响应数组。您将能够以这种方式访问所需的值:

    ar[0].TotalPageCount
    ar[1].TotalTitleCount
    

    我希望这会对您有所帮助。祝您好运。

    对于您当前的JSON格式,应该是这样的。不过,如果您可以更改JSON格式,那就更好了

    <script>
        function updateTitlesArea() {
            $.getJSON(
                "/lates/json/",
                null,
                function(data) {
                    $("#titlesDiv").html('<ul></ul>'); // <li> goes inside <ul> or <ol>
                    $("#pagesDiv").empty();
    
                    var has_titles = false;
    
                    for(var i = 0; i < data.length; i++) {
                        if("Title" in data[i]) {
                            $("#titlesDiv ul").append(
                                '<li><a href="/' + data[i].Title.replace(/ /g, '-') + '">' + data[i].Title + "</a>" +
                                "</li>"
                            );
                            has_titles = true;
                        }
                    }
                    if( !has_titles ) {
                        $("#titlesDiv ul").html("<li>no entry</li>");
                    }
                }
            );
        }
    </script>
    
    
    函数updateTitlesArea(){
    $.getJSON(
    “/lates/json/”,
    无效的
    功能(数据){
    $(“#titlesDiv”).html(“
      ”)/
    • 进入
        或 $(“#pagesDiv”).empty(); var具有_titles=false; 对于(变量i=0;i”+ “” ); has_titles=true; } } 如果(!有_标题){ $(“#titlesDiv ul”).html(“
      • 无条目”
      • ”; } } ); }
    • data[0].TotalPageCount不要在数组中使用
      ,也不要使用
      $(“#titlesDiv”).html($(“#titlesDiv”).html()+
      ,因为它具有不必要的破坏性和低效性。我不敢相信回答者不会纠正这些模式。如果你控制JSON结构,一个更明智的方法可能是
      {TotalPageCount“:66,“TotalTitleCount”:199,“标题”:[“可乐”、“猫王汤姆”、“dvd”]}