获取多维json数组的值

时间:2016-02-15 15:25:05

标签: php arrays json multidimensional-array

我试图从json数组中获取两个变量的值。数组变为用ajax发送,然后解码并“保存”到$jsonarray。然后我尝试从数组中获取volumesymbol变量并将它们插入到我的数据库中。我不理解这个$jsonarray->result->{"quote"}->symbol的语法,并且任何时候都试过它的正确但错误不会消失。

那就是我的数组:

{"query":{"count":1,"created":"2016-02-15T15:11:47Z","lang":"de-DE","results":{"quote":{"symbol":"ZN","Ask":"2.05","Bid":"1.78","Volume":"13214","PercentChange":"+0.56%"}}}}

相关的php文章:

$jsonString = $_POST['mydata'];
$jsonarray = json_decode($jsonString[0]['query']);
if ($stmt = $mysqli->prepare('INSERT INTO volume (stocksymbol, volume, time) VALUES ( ?, ?, now())')) {

    /* bind parameters for markers */
    $stmt->bind_param("si", $jsonarray->result->{"quote"}->symbol, $jsonarray->result->{"quote"}->Volume);

    /* execute query */
    $stmt->execute();

    /* close statement */
    $stmt->close();
}

3 个答案:

答案 0 :(得分:2)

尝试:

/* bind parameters for markers */
    $stmt->bind_param("ss", $jsonarray->result->{"quote"}->symbol, $jsonarray->result->{"quote"}->Volume);

答案 1 :(得分:2)

你确定这条线是正确的吗? $jsonarray = json_decode($jsonString[0]['query']);

在这种情况下,您应该通过以下方式访问结果: $jsonarray->query->results->...

答案 2 :(得分:1)

您可以尝试将JSON解码为关联数组。假设$_POST['mydata']包含您向我们展示的JSON字符串,请尝试以下操作:

$jsonString = $_POST['mydata']; 
$jsonarray = json_decode($jsonString, TRUE);

这样,您可以以更一致的方式访问值:

$stmt->bind_param(
     "si", 
     $jsonarray['query']['results']['quote']['symbol'], 
     $jsonarray['query']['results']['quote']['Volume']
);