這篇文章主要介紹“JavaScript對象標注的方法是什么”,在日常操作中,相信很多人在JavaScript對象標注的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JavaScript對象標注的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
建網站原本是網站策劃師、網絡程序員、網頁設計師等,應用各種網絡程序開發技術和網頁設計技術配合操作的協同工作。創新互聯專業提供成都網站制作、網站建設,網頁設計,網站制作(企業站、成都響應式網站建設、電商門戶網站)等服務,從網站深度策劃、搜索引擎友好度優化到用戶體驗的提升,我們力求做到極致!
JavaScript 對象標注
實際上,JavaScript 對象的大部分都由聯合數組、數字索引數組、字符串、數字或者這些類型的嵌套組合而成。因為所有類型都可以用 JavaScript 直接聲明,所以可以在一條語句中靜態地定義對象圖。
清單 7 使用 JSON 語法聲明了一個對象,并演示了如何訪問這個對象。大括號表示聯合數組(即對象),它的鍵 -值組合由逗號分隔。方括號表示數字索引數組。
清單 7. 用 JSON 在 JavaScript 中直接聲明一個簡單對象
var band = { name: "The Beatles", members: [ { name: "John", instruments: ["Vocals","Guitar","Piano"] }, { name: "Paul", instruments: ["Vocals","Bass","Piano","Guitar"] }, { name: "George", instruments: ["Guitar","Vocals"] }, { name: "Ringo", instruments: ["Drums","Vocals"] } ] }; // Interrogate the band object var musician = band.members[3]; alert( musician.name + " played " + musician.instruments[0] + " with " + band.name ); |
既然 JSON 是一個有趣的語言特性,那么它對 Ajax 有什么意義呢?妙處在于可以用 JSON 在 Ajax 服務器響應中通過網絡發送 JavaScript 對象圖。
這意味著在客戶端可以避免使用笨拙的 DOM API 對 XML 進行導航 —— 只需要分析 JSON 響應,就會立即得到可以訪問的 JavaScript 對象圖。但是,首先需要把 JavaBean 變成 JSON。
從 Java 類產生 JSON
不同 XML 生成技術所具有的優缺點也適用于 JSON 的產生。而且可以證明,存在需要再次使用表示模板技術的情況。但是,使用 JSON 在理念上更接近于在應用層之間傳遞序列化的對象,而不是創建應用程序狀態的視圖。
我將介紹如何用 org.json 這個 Java API 在 Java 類上創建 toJSONObject() 方法。然后,就可以把 JSONObject 簡單地序列化成 JSON。清單 8 反映了 清單 1 討論的 XML,顯示了 Order 類的 toJSONObject() 實現。
清單 8. Order 類的 toJSONObject() 方法實現
public JSONObject toJSONObject() { JSONObject json = new JSONObject(); json.put("id",id); json.put("cost",getFormattedCost()); json.put("date",date); JSONArray jsonItems = new JSONArray(); for (Iterator |
可以看到,org.json API 非常簡單。 JSONObject 代表 JavaScript 對象(即聯合數組),有不同的 put() 方法,方法接受的 String 鍵和值是原生類型、String 類型或其他 JSON 類型。
JSONArray 代表索引數組,所以它的 put() 方法只接受一個值。請注意在清單 8 中,創建 jsonItems 數組,然后再用 put() 把它附加到 json 對象上;可以用另外一種方法做這項工作,就是對每個項目調用:
json.accumulate("items", iter.next().toJSONObject()); |
accumulate() 方法與 put()類似,區別在于它把值添加到按照鍵進行識別的索引數組。清單 9 顯示了如何序列化 JSONObject 并把它寫入 servlet 響應。
清單 9. 從 JSONObject 生成序列化的 JSON 響應
public void doGet(HttpServletRequest req, HttpServletResponse res) throws java.io.IOException, ServletException { String custId = req.getParameter("username"); Customer customer = getCustomer(custId); res.setContentType("application/x-json"); res.getWriter().print (customer.toJSONObject()); } |
可以看到,它實際上什么也沒有做。在這里隱式調用的 JSONObject 的 toString() 方法做了所有工作。請注意,application/x-json 內容類型還有一點不確定 —— 在編寫這篇文章的時候,關于 JSON 應當屬于什么 MIME 類型還沒有定論。但是,目前 application/x-json 是合理的選擇。清單 10 顯示了這個 servlet 代碼的示例響應。
清單 10. Customer bean 的 JSON 表示
{ "orders": [ { "items": [ { "price": "$49.99", "description": " 512 Megabyte Type 1 CompactFlash card. Manufactured by Oolong Industries", "name": "Oolong 512MB CF Card", "id": "i-55768" }, { "price": "$299.99", "description": " 7.2 Megapixel digital camera featuring six shooting modes and 3x optical zoom. Silver.", "name": "Fujak Superpix72 Camera", "id": "i-74491" } ], "date": "08-26-2005", "cost": "$349.98", "id": "o-11123" } ], "realname": "James Hyrax", "username": "jimmy66" } |
到此,關于“JavaScript對象標注的方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯網站,小編會繼續努力為大家帶來更多實用的文章!