[英]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.