2012-02-23 32 views
0

這裏是我的代碼:如何在轉換爲JSON的關聯數組上使用eval函數?

$result = mysql_query("SELECT * FROM Product_Characteristics"); 

    $charact_array = array(); 

    while($row = mysql_fetch_array($result)) { 
     $charact_array[$row['PC_ID']] = $row['Title']; 

    } 

    $JSON_char = json_encode($charact_array); 

    echo $JSON_char; 

的迴應後,是這樣的:

{"1":"product1","2":"product2","3":"product3","4":"product4"} 

我不知道一旦返回這個數據如何在JavaScript訪問使用eval函數這些值。 ..

通常,使用eval函數,我可以得到的東西的價值是這樣的:

{ 
    "ptypes": { 
     "aptype": [ 
      { 
       "id": "1", 
       "title": "product1" 
      }, 
      { 
       "id": "2", 
       "title": "product2" 
      } 
     ] 
    } 
} 

使用一些這樣的代碼:

var JSONobject = eval('(' + msg + ')'); //msg is the JSON response from above 

alert(JSONobject.ptypes.aptype.title[0]) // product1 

我基本上需要能夠通過它們訪問JSON內的值(我上面從PHP關聯數組編碼)和循環。

如果這是不可能的,或者如果最好將我的JSON數據封裝在結構「ptypes」和「aptype」中(這似乎不是必需的),我非常感謝任何建議。

+0

好吧,讓我們震驚。 *爲什麼*你沒有使用json2.js(或瀏覽器的內置JSON解碼工具)? – 2012-02-23 04:53:55

+0

我其實有json2.js,你能推薦一個使用它的解決方案嗎? – TaylorMac 2012-02-23 04:54:39

回答

3

如果您收到一個實際的字符串,可以使用

var jsonObj = JSON.parse(msg); 
alert(jsonObj[1]); 

什麼,你真的應該,雖然做的是

// at the end of your PHP script 
header('Content-type: application/json'); 
echo $JSON_CHAR; 
exit; 

然後返回正確的內容類型,你可以使用的東西解析它像jQuery的getJSON()功能

$.getJSON('some/url.php', function(data) { 
    alert(data[1]); 
}); 
+0

非常感謝。我在這個該死的網站上學到了很多東西 – TaylorMac 2012-02-25 23:37:38

相關問題