簡體   English   中英

將PHP assoc數組轉換為json對象

[英]Converting PHP assoc array to json object

我在PHP中有一個assoc數組:

foreach ($result as $value) {   
    $x++;
    $data += array("nds" => array($x => $x), "eds" => array(), "an" => array($x => $this->model->getLng($value)));
}

我將此數組發送到JS文件,其打印如下:

{"nds":{"1":1},"eds":[],"an":{"1":[45.4423073,-75.7979993]}}

但是,我無法到達nds因為這返回的是undefined:

console.log(data.nds);

PHP只是將字符串發送到JS文件。 您首先需要設置一個等於該字符串的變量:

<script>
  var json = '<?= $data; ?>';
</script>

現在我們有了一個JS變量json ,但是需要將其轉換為一個對象以引用nds屬性。 我們可以使用JSON.parse()做到這一點:

<script>
  var json = '<?= $data; ?>';
  var data = JSON.parse(json);

  console.log(data.nds); // Object {1: 1}
</script>

@RobM提出了一個很好的觀點,我們甚至不需要將其解析為字符串,而只需將變量設置為JSON轉儲即可:

<script>
  var data = <?= $data; ?>;
  console.log(data.nds); // Object {1: 1}
</script>

這仍然需要您傳遞JSON數據( { "nds": { "1": 1 }, "eds": [], "an": { "1": [ 45.4423073, -75.7979993 ] } } )將PHP腳本轉換為JS變量。

您可以使用jQuery JSON解析器或標准Javascript JSON解析器:

var data = '{"nds":{"1":1},"eds":[],"an":{"1":[45.4423073,-75.7979993]}}';

var d = $.parseJSON(data);  // jQuery
console.log(d['nds']);

var j = JSON.parse(data);   // Javascript
console.log(j['nds']);

例如: http//jsfiddle.net/bb7ak6L5/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM