我想用JSON來表示JS對象,將它們發送給Java程序,反之亦然。 我也想爲其他語言做到這一點。 C#到Java也許?JSON,JS to Java和Vice Versa,以及其他語言
我該怎麼做? (不確定它是否被稱爲序列化或數據綁定)
編輯: 一旦Java對象以JSON表示,這是否意味着JavaScript可以解析它並將其轉換爲相應的JavaScript對象?
我想用JSON來表示JS對象,將它們發送給Java程序,反之亦然。 我也想爲其他語言做到這一點。 C#到Java也許?JSON,JS to Java和Vice Versa,以及其他語言
我該怎麼做? (不確定它是否被稱爲序列化或數據綁定)
編輯: 一旦Java對象以JSON表示,這是否意味着JavaScript可以解析它並將其轉換爲相應的JavaScript對象?
我會建議使用Gson這一點。它的優點是它非常好地支持泛型和嵌套的bean,並且速度也足夠快。我已經發布了Gson#fromJson()
例子轉換一個相當複雜的JSON字符串到Java在這裏:Converting JSON to Java
的Gson#toJson()
將任何有效的類似JavaBean的對象JSON基本上是小菜一碟:
String json = new Gson().toJson(object);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
編輯:一旦Java對象以JSON表示,這是否意味着JavaScript可以解析它並將其轉換爲相應的JavaScript對象?
當然你可以像JS對象一樣訪問它們。如果您還是JS中使用JSON的新手,那麼我可以推薦這個啓動教程:http://www.hunlock.com/blogs/Mastering_JSON_%28_JavaScript_Object_Notation_%29
要從JSON轉到Java中的對象,我聽說json-simple工作正常。它將JSON映射到可包含字符串,數字,列表和其他地圖的Java地圖。這比其他一些庫更簡單,它們直接映射到您需要創建的Java對象來表示JSON。
有關大多數主要語言(包括Java和C#)的JSON庫的詳盡列表,請查看json.org。
您可以使用Google Web Toolkit在javascript和Java之間共享對象。使用GWT,您可以將所有代碼寫入Java中,然後GWT編譯器將處理從JavaScript到Java和副版本的RPC調用的序列化。
如果所有的OP需求都是簡單的JSON序列化和反序列化,那麼GWT是超級技巧。 – 2009-12-12 03:29:31
不一定。 GWT將所有序列化和反序列化抽象出來。我實際上會辯稱完全相反。 GWT似乎是一個非常簡單的解決方案,用於在javascript和java之間傳遞對象。 – Brad 2009-12-12 08:38:25
要序列化javascript對象以傳輸到服務器,我已經使用了https://github.com/douglascrockford/JSON-js/blob/master/json2.js。非常好,很容易。
進出的java得到JSON數據,我發現這個庫非常簡單: http://json-lib.sourceforge.net/
創建從JSON JavaScript對象是一個非問題。 JSON是有效的JavaScript。你可以簡單地在它上面運行eval,或者使用一個JavaScript庫,它可以提供一些內置的安全性,這是eval沒有的。
JSON庫?或者我錯過了什麼? – jldupont 2009-12-12 03:25:50
感謝大家的回答。在我選擇一個圖書館之後,我應該可以做到這一點。 從閱讀您的意見,我可以看到我的主要問題是,我沒有考慮我正在做什麼。 – Nolan 2009-12-12 22:31:16