JSON,JS到Java和Vice Versa以及其他语言

时间:2009-12-12 03:21:41

标签: java javascript json serialization

我想使用JSON来表示JS对象将它们发送到Java程序,反之亦然。 我也想为其他语言这样做。 C#到Java可能吗?

我该怎么用? (不确定它是否被称为序列化或数据绑定)

编辑: 一旦用JSON表示Java对象,这是否意味着JavaScript可以解析它并将其转换为相应的JavaScript对象?

5 个答案:

答案 0 :(得分:0)

要从JSON转到Java中的对象,我听说json-simple效果很好。它将JSON映射到Java Map,Java Map可以包含String,Numbers,Lists和其他Maps。这比其他一些库更简单,这些库直接映射到您需要创建以表示JSON的Java对象。

有关包括Java和C#在内的大多数主要语言的JSON库的详尽列表,请查看json.org

答案 1 :(得分:0)

您可以使用Google Web Toolkit在javascript和Java之间共享对象。使用GWT,您可以用Java编写所有代码,然后GWT编译器将处理从javascript到Java和RPC的RPC调用的序列化。

答案 2 :(得分:0)

如果您的意思是某种排序连接(网络,本地管道等),它将被称为数据序列化。您将使用库来编码对象。 json.org有一个可以做你想做的库的列表。

如果您正在编写一个带有JS前端的Java服务器,那么总是GWT(我从来没有使用过,但听过很多关于它的事情)

答案 3 :(得分:0)

我建议您使用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);
  

编辑:一旦用JSON表示Java对象,这是否意味着JavaScript可以解析它并将其转换为相应的JavaScript对象?

当然,您可以像JS对象一样访问它们。如果您不熟悉在JS中使用JSON,那么我可以推荐这个启动教程:http://www.hunlock.com/blogs/Mastering_JSON_%28_JavaScript_Object_Notation_%29

答案 4 :(得分:0)

为了序列化javascript对象以传输到服务器,我使用了https://github.com/douglascrockford/JSON-js/blob/master/json2.js。很好,很容易。

要将JSON数据输入和输出java,我发现这个库非常简单: http://json-lib.sourceforge.net/

从JSON创建javascript对象不是问题。 JSON是有效的javascript。你可以简单地在它上面运行eval,或者使用一个javascript库,它可以提供一些内置的安全性,eval没有。