多维数组JQUERY和JSON

多维数组JQUERY和JSON,jquery,json,multidimensional-array,Jquery,Json,Multidimensional Array,好的..我有一个json字符串(myJson),看起来像这样: {"id": "1", "file": "test.jpg"} 在jquery函数中,我想将json字符串的这些id和文件值放到数组中的一个项中 所以,我有 var myArray = new Array(); var parsedJson = $.parseJSON(myJson); myArray['item1']['id'] = parsedJson.id; myArray['item1']['file'] = parse

好的..我有一个json字符串(myJson),看起来像这样:

{"id": "1", "file": "test.jpg"} 
在jquery函数中,我想将json字符串的这些id和文件值放到数组中的一个项中

所以,我有

var myArray = new Array();
var parsedJson = $.parseJSON(myJson);
myArray['item1']['id'] = parsedJson.id;
myArray['item1']['file'] = parsedJson.file;

但是,即使在执行这些代码之后,数组的长度
myArray
仍保持0。有人能解释一下为什么会发生这种情况吗?

也许你把PHP关联数组和JavaScript数组搞混了。在JavaScript中,您使用对象而不是关联数组,它们的行为不同。您可以根据需要尝试以下方法之一:

var myArray = {};
var parsedJson = $.parseJSON('{"id": "1", "file": "test.jpg"}');
myArray['item1'] = {};
myArray['item1']['id'] = parsedJson.id;
myArray['item1']['file'] = parsedJson.file;
myArray['item2'] = {};
myArray['item2']['id'] = parsedJson.id + '_2';
myArray['item2']['file'] = parsedJson.file + '_2';
console.log(myArray);
或者这个:

var myArray = [];
var parsedJson = $.parseJSON('{"id": "1", "file": "test.jpg"}');
myArray.push({
    id: parsedJson.id,
    file: parsedJson.file
});
myArray.push({
    id: parsedJson.id + '_2',
    file: parsedJson.file + '_2'
});
console.log(myArray);
试一试


您可以像这样简单地重写代码

myArray['item1'] = {"id": "1", "file": "test.jpg"};
此代码将生成示例结果

您得到的长度“myArray”=0,因为在本例中,“item1”是对象myArray的属性。它不是myArray的元素

有关“作为关联数组的对象”的详细信息,请阅读此文档

这项功能非常有效:

var obj = jQuery.parseJSON('{"id": "1", "file": "test.jpg"}');
alert( obj.id );
alert (obj.file);
但当我发送一个用php创建的多维数组时,它就崩溃了,我使用的代码如下所示:

(jquery)

(菲律宾)

$actArriendo=$\u POST[“arriendoConsulta”];
//艾尔·因梅布勒·托达斯·拉斯奥皮奥尼斯·雷克比达斯酒店
$sql=“从'recomendados integridad'中选择*,其中'negocio`='$actArriendo';
$inmueble=mysql\u query($sql,$conexion)或die(mysql\u error());
$i=0;
如果($row=mysql\u fetch\u数组($inmueble)){
做{
回声“

内容:“.$i.”
“; ${'camposimuebleinicio'.$i}=array( 'tipoInmueble'=>$row['tipoInmueble'], “negocio”=>$row[“negocio”], “alcobas”=>$row[“alcobas”], 'banos'=>$row['banos'], ); ++$i; } 而($row=mysql_fetch_数组($inmueble)); }否则{ echo“不,我不知道!”; } $casasArriendoArray=array($camposimuebleinciio0,$camposimuebleinciio1,$camposimuebleinciio2); $json=json_encode($casasArriendoArray); echo$json;
首先,这不是多维数组。这是基本的json字符串是的……但我想将解析后的json字符串中的值放入多维数组。我将尝试一下。非常感谢您的回复。我对javascript非常陌生。:)
var obj = jQuery.parseJSON('{"id": "1", "file": "test.jpg"}');
alert( obj.id );
alert (obj.file);
function actualizarIndex(){ 
    /* RECOGEMOS LAS VARIABLES */
    $.post('php/consulta-actualizar-index.php', 
        { arriendoConsulta: 'arriendo'}
        ,
        function(data) {
            var parsedJson = $.parseJSON(data);
            alert(parsedJson);
            alert(parsedJson.tipoInmueble);

        }).error(
            function(){
        console.log('Error al ejecutar la petición');
        }
    );

}
$actArriendo = $_POST["arriendoConsulta"];

//insertamos el inmueble con todas las opciones recbidas
$sql = "SELECT * FROM `recomendados-integridad` WHERE `negocio`= '$actArriendo'";
$inmueble = mysql_query($sql, $conexion) or die(mysql_error());

$i = 0;

if ($row = mysql_fetch_array($inmueble)){ 

   do { 
        echo "<hr><br>conteo: " . $i ."<br>";
        ${'camposInmuebleInicio'.$i} = array(
            'tipoInmueble' => $row['tipoInmueble'],
            'negocio' => $row['negocio'],
            'alcobas' => $row['alcobas'],
            'banos' => $row['banos'],
        );

        ++ $i;
       } 
       while ($row = mysql_fetch_array($inmueble)); 


} else { 
echo "¡ No se ha encontrado ningún registro !"; 
}


$casasArriendoArray = array( $camposInmuebleInicio0 ,  $camposInmuebleInicio1 , $camposInmuebleInicio2);
$json = json_encode( $casasArriendoArray );
echo $json;