jjzjj

javascript - 解析没有键的多维JSON数组

coder 2024-05-04 原文

我试图在网页上显示不同的省份,包括他们的商店,它们位于一个多维数组中,但我无法设法显示缺少键的嵌套数组。

我试过给数组一个键,试过“parse.Land.0”、“parse.Land.i”和“parse.Land[0]”来获取信息,但似乎都不起作用.在“parse.Land[0]”的情况下,它将返回国家名称的第一个字母,而不是嵌套数组中的第一个结果。我们也尝试过以几种不同的方式构造数组,但都没有奏效。

从数据库获取信息的PHP代码:

$Land = ['Land' => $_GET['data']];

$Nederland = array("Groningen", "Friesland", "Drenthe", "Overijssel", "Flevoland", "Gelderland", "Utrecht", "Noord-Holland", "Zuid-Holland", "Zeeland", "Noord-Brabant", "Limburg");
$Andere = array("Etc", "Etcetera");
switch ($_GET['data']) {
    case "Nederland":
        $country = $Nederland;
        $fieldID = 5;
        break;
    case "Andere":
        $country = $Andere;
        $fieldID = 18;
        break; 
}
    foreach($country as $data) {
        $locationData = [];
        $getProvince= $_db->prepare("SELECT user_id, value FROM wp_bp_xprofile_data WHERE field_id = ".$fieldID." AND value = '".$data."'");
        $getProvince->execute();

        $displayProvince = $getProvince->fetchAll(PDO::FETCH_ASSOC);
        foreach($displayProvince as $dataProvince) {
           $getName= $_db->prepare("SELECT value FROM wp_bp_xprofile_data WHERE field_id = 1 AND user_id = ".$dataProvince['user_id']);
           $getName->execute();
           $displayName = $getName->fetchAll(PDO::FETCH_ASSOC);
           foreach($displayName as $dataName) {
               $locationData[] = ['Info' => $dataName['value']];
           }
        }
        $Land[] = [$data => $locationData];
    }

echo json_encode($Land);

此 JSON 数组的 PHP 代码结果:

{"Land":"Nederland","0":{"Groningen":[{"Info":""},{"Info":""}]},"1":{"Friesland":[]},"2":{"Drenthe":[]},"3":{"Overijssel":[]},"4":{"Flevoland":[]},"5":{"Gelderland":[]},"6":{"Utrecht":[]},"7":{"Noord-Holland":[{"Info":"Placeholder"},{"Info":"Test"},{"Info":"Anna Paulowna"},{"Info":"Den Helder"}]},"8":{"Zuid-Holland":[{"Info":"zuidholland"},{"Info":"zuidholland2"}]},"9":{"Zeeland":[{"Info":"Middelburg"}]},"10":{"Noord-Brabant":[]},"11":{"Limburg":[]}}

Ajax 在网页上显示信息:

function getData(land) {
        $.ajax({
            type: 'GET',
            url: '/GetData.php',
            data: {data: land},
            success: function (data) {

                var parse = JSON.parse(data);
                var object = Object.keys(parse).length;
                var element = document.getElementById('content');
                for (var i = 0; i < object; i++) {
                    var mainDiv = document.createElement('div');
                    mainDiv.setAttribute('class', 'accordion_holder');
                    element.appendChild(mainDiv);
                    var accordion = document.createElement('button');
                    accordion.setAttribute('class', 'accordion');
                    mainDiv.appendChild(accordion);
                    var icon = document.createElement('i');
                    icon.setAttribute('class', 'fas fa-angle-right');
                    accordion.appendChild(icon);
                    accordion.insertAdjacentHTML('afterbegin', parse.Land);
                }
                console.log(parse);
            }
        });

    var element = document.getElementById(land);

    element.classList.add('active');

    }

我希望能够使用键“Info”获取内部数组的值。 相反,我要么收到一条错误消息,指出 getData() 未定义,要么只是国家/地区的第一个字母。我希望能够按照“parse.Land.7.Noord-Holland.Info”的思路做一些事情,并让它返回值“Placeholder”。

如有任何帮助,我们将不胜感激。

最佳答案

parse[0] 将计算为

{"Groningen":[{"Info":""},{"Info":""}]}

当你打印它时它会是[object Object],如果你需要第一个元素那么

Object.keys(parse[0])[0]

应该给你格罗宁根

关于javascript - 解析没有键的多维JSON数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57954250/

有关javascript - 解析没有键的多维JSON数组的更多相关文章

  1. Ruby 解析字符串 - 2

    我有一个字符串input="maybe(thisis|thatwas)some((nice|ugly)(day|night)|(strange(weather|time)))"Ruby中解析该字符串的最佳方法是什么?我的意思是脚本应该能够像这样构建句子:maybethisissomeuglynightmaybethatwassomenicenightmaybethiswassomestrangetime等等,你明白了......我应该一个字符一个字符地读取字符串并构建一个带有堆栈的状态机来存储括号值以供以后计算,还是有更好的方法?也许为此目的准备了一个开箱即用的库?

  2. ruby-on-rails - 在 Ruby 中循环遍历多个数组 - 2

    我有多个ActiveRecord子类Item的实例数组,我需要根据最早的事件循环打印。在这种情况下,我需要打印付款和维护日期,如下所示:ItemAmaintenancerequiredin5daysItemBpaymentrequiredin6daysItemApaymentrequiredin7daysItemBmaintenancerequiredin8days我目前有两个查询,用于查找maintenance和payment项目(非排他性查询),并输出如下内容:paymentrequiredin...maintenancerequiredin...有什么方法可以改善上述(丑陋的)代

  3. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  4. ruby - 多次弹出/移动 ruby​​ 数组 - 2

    我的代码目前看起来像这样numbers=[1,2,3,4,5]defpop_threepop=[]3.times{pop有没有办法在一行中完成pop_three方法中的内容?我基本上想做类似numbers.slice(0,3)的事情,但要删除切片中的数组项。嗯...嗯,我想我刚刚意识到我可以试试slice! 最佳答案 是numbers.pop(3)或者numbers.shift(3)如果你想要另一边。 关于ruby-多次弹出/移动ruby​​数组,我们在StackOverflow上找到一

  5. ruby - 难道Lua没有和Ruby的method_missing相媲美的东西吗? - 2

    我好像记得Lua有类似Ruby的method_missing的东西。还是我记错了? 最佳答案 表的metatable的__index和__newindex可以用于与Ruby的method_missing相同的效果。 关于ruby-难道Lua没有和Ruby的method_missing相媲美的东西吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7732154/

  6. ruby - 将数组的内容转换为 int - 2

    我需要读入一个包含数字列表的文件。此代码读取文件并将其放入二维数组中。现在我需要获取数组中所有数字的平均值,但我需要将数组的内容更改为int。有什么想法可以将to_i方法放在哪里吗?ClassTerraindefinitializefile_name@input=IO.readlines(file_name)#readinfile@size=@input[0].to_i@land=[@size]x=1whilex 最佳答案 只需将数组映射为整数:@land边注如果你想得到一条线的平均值,你可以这样做:values=@input[x]

  7. ruby - 用逗号、双引号和编码解析 csv - 2

    我正在使用ruby​​1.9解析以下带有MacRoman字符的csv文件#encoding:ISO-8859-1#csv_parse.csvName,main-dialogue"Marceu","Giveittohimóhe,hiswife."我做了以下解析。require'csv'input_string=File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")#=>"Name,main-dialogue\r\n\"Marceu\",\"Giveittohim\x97he,hiswife.\"\

  8. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  9. ruby - 通过 erb 模板输出 ruby​​ 数组 - 2

    我正在使用puppet为ruby​​程序提供一组常量。我需要提供一组主机名,我的程序将对其进行迭代。在我之前使用的bash脚本中,我只是将它作为一个puppet变量hosts=>"host1,host2"我将其提供给bash脚本作为HOSTS=显然这对ruby​​不太适用——我需要它的格式hosts=["host1","host2"]自从phosts和putsmy_array.inspect提供输出["host1","host2"]我希望使用其中之一。不幸的是,我终其一生都无法弄清楚如何让它发挥作用。我尝试了以下各项:我发现某处他们指出我需要在函数调用前放置“function_”……这

  10. ruby - 检查数组是否在增加 - 2

    这个问题在这里已经有了答案:Checktoseeifanarrayisalreadysorted?(8个答案)关闭9年前。我只是想知道是否有办法检查数组是否在增加?这是我的解决方案,但我正在寻找更漂亮的方法:n=-1@arr.flatten.each{|e|returnfalseife

随机推荐