簡體   English   中英

將文本數組轉換為Javascript對象

[英]Converting text array to Javascript object

我正在嘗試將GET請求中的數組轉換為Javascript中的實際對象。

這是我要轉換的數組的示例。

array(21) {
  [0]=>
  array(3) {
    ["id"]=>
    int(15508)
    ["name"]=>
    string(9) "Some name"
    ["API_key"]=>
    string(19) "Some key"
  }
  [1]=>
  array(3) {
    ["id"]=>
    int(19695)
    ["name"]=>
    string(12) "Some name"
    ["API_key"]=>
    string(19) "Some key"
  }
  [2]=>
  array(3) {
    ["id"]=>
    int(19627)
    ["name"]=>
    string(13) "Some name"
    ["API_key"]=>
    string(19) "Some key"
  }

該數組由PHP中的Web服務服務器生成。

我試圖做到這一點:

var result = xmlHttp.responseText;
var string = JSON.stringify(result);
var json = JSON.parse(string);

這將返回相同的數組,但是當我嘗試訪問數組中的某些項(例如在for循環中)時: json[i]返回單個字母,就好像該數組是一個字符串一樣。

我控制了服務器,這是處理數組返回的php文件中的代碼:

header("Content-Type: application/json");
var_dump($result);

使用gettype($result)返回“數組”。

編輯

我能夠得到PHP以JSON格式返回數組:

[
  [
    {
      "id": 15508,
      "name": "Some name",
      "API_key": "Some key"
    },
    {
      "id": 19695,
      "name": "Some name",
      "API_key": "Some key"
    },
    {
      "id": 19627,
      "name": "Some name",
      "API_key": "Some key"
    {
  ]
]    

我對此有些陌生,非常感謝您的幫助。

試用PHP

$json = json_encode($_GET);
print_r($json);

而在JS中

var result = xmlHttp.responseText;
var json = JSON.parse(result);

更新! 我這樣解決了

通過使用答案中的代碼,事實證明,我無法在PHP中創建JSON,我的數組未正確編碼。

$arr[] = $result;
function utf8ize($d) {
    if (is_array($d)) {
        foreach ($d as $k => $v) {
            $d[$k] = utf8ize($v);
        }
    } else if (is_string ($d)) {
        return utf8_encode($d);
    }
    return $d;

然后使用echo json_encode(utf8ize($data)); 將數組返回JSON。 要將其轉換為JavaScript中的JSON,我在這里使用了另一個答案來尋求幫助:

var result = xmlHttp.responseText;
var json = JSON.parse(result);

謝謝!

暫無
暫無

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

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