【问题标题】:Working with JSON and a multidimensional array (JS)使用 JSON 和多维数组 (JS)
【发布时间】:2025-12-14 20:15:02
【问题描述】:

我遇到了以下问题:我编写了一个搜索函数,它的结果被保存到一个数组中。当我使用jquery form plugin 处理该函数的响应时,我创建了一个附加数组,其中填充了搜索创建的所有数组。然后,我想将该多数组解析为我的 jQuery 脚本作为 JSON 对象。到目前为止一切都很好,但是我如何使脚本可以访问多数组? (如multiarray.array1.property)

到目前为止,这是我的代码:

  • [HTML/JS]
<!DOCTYPE html>
<html> 
<body>
<div class="edit">
<h2>Editieren</h2>
<form id="suchen" method="post"><input type="text" id="search" name="id">
<input type="submit" value="Senden"></form>  
</div>
</html>

    $('#suchen').ajaxForm({

    url: "./php/search.php",
    dataType: 'json',
    success: function(data){

        alert(data[0]) ;

    },
        clearForm: true
}) ;​

提前谢谢你

编辑:

JSON 示例:

{
    "id": "33",
    "firma": "sls",
    "strasse": "Industriegebiet Siebend",
    "plz": "66663",
    "ort": "Merzig",
    "vorname": "",
    "nachname": "Ruf",
        "email": "ronny.ruf@web.de ",
    "bemerkung": "",
    "partner": "",
    "kinder": "1",
    "nation": "D",
    "betreuer": "Adam",
    "anrede": "Herr"
}

【问题讨论】:

  • 能否提供一个生成的 JSON 样本?

标签: php jquery json multidimensional-array


【解决方案1】:

在您的 PHP 中

       while($row = mysql_fetch_array($result)){

                    $article = array (

                        "id"=>$row['id'],
                        "firma"=>$row['firma'],
                        "strasse"=>$row['strasse'],
                        "plz"=>$row['plz'],
                        "ort"=>$row['ort'],
                        "vorname"=>$row['vorname'],
                        "nachname"=>$row['nachname'],
                        "email"=>$row['email'],
                        "bemerkung"=>$row['bemerkung'],
                        "partner"=>$row['partner'],
                        "kinder"=>$row['kinder'],
                        "nation"=>$row['nation'],
                        "betreuer"=>$row['betreuer'],
                        "anrede"=>$row['anrede'],

                     ) ;
                    $hits[] = $article;
        }

                    echo json_encode($hits) ; 

在你的 jquery...

$('#suchen').ajaxForm({

    url: "./php/search.php",
    dataType: 'json',
    success: function(data){
       $.each(data, function(i, val){
           console.log(val); /*alert don't work on arrays*/
           alert(val.firma); /*you can alert some array key for example*/
       });    
    },
        clearForm: true
}) ;​

我用 console.log 替换 alert 因为 val 将是数组... 要访问它的任何键,只需编写 val.keyname..

作为..alert(val.strasse);

【讨论】:

  • 谢谢,但看来我做错了什么。访问键名不起作用,当我按照您上面写的那样尝试时,它说未定义。另外,我不明白如何在数组之间切换。
【解决方案2】:

parseJSON 帮助你

var data = jQuery.parseJSON('{"name":"John"}');
alert( data.name );

【讨论】:

  • 你为什么不用JSON.parse