程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 轉化服務器端傳回的JSON數據

轉化服務器端傳回的JSON數據

編輯:關於JAVA

講講JS的內置函數eval()的用法.

最初用到它是為了將後台傳送過來的JSON格式的字符串轉化為JSON對象。後來發現它的功能的確很強大,遠不止這點,但今天只講它。如果想深入了解可以參考下W3School。

進入正題:

Java代碼

<script>
var json='{"id":1}';
alert(json.id);
</script>

如果仔細看,可以發現,上面那段代碼彈出的對話框是不能把id顯示出來的。原因就是json只是個字符串對象而並不是真正的JSON對象,注意最外邊那兩個單引號。

Java代碼

<script>
var json={"id":1};//去掉單引號
alert(json.id);
</script>

去掉單引號,id就成功顯示了。此時的json就是個JSON對象。

現在從服務器端傳回的JSON數據就是像第一個例子那樣帶單引號的,是不能直接使用的。那怎麼辦呢?

答案就是開頭提到的eval()函數。

Java代碼

<script>
var json='{"id":1}';
var jsonObj=eval("("+json+")");//注意這一行
alert(jsonObj.id);
</script>

id成功顯示。

注意兩個要點:

1、json如果只是單個對象,而不是對象數組,如上例所示,則不能直接寫成eval(json).

2、不能把eval("("+json+")") 寫成eval('("+json+")'),否則id照樣不會顯示。

再舉一例:

Java代碼

<script>
var json='[{"id":1}]';
var jsonObj=eval(json);
alert(jsonObj[0].id);
</script>

id照樣能成功顯示。注意區別:json包含的是一個對象數組,而非單個對象。但為什麼這樣就可以,而前面的例子卻不可以,我就稀裡糊塗了,還請大俠賜教。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved