多维数组JQUERY和JSON
好的..我有一个json字符串(myJson),看起来像这样:多维数组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
{"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;