使用JSON的Javascript到Java
我打算通过在JSON中编码来发送填充数据的Javascript数组对象。 这个有什么好的jquery插件吗?
在Java端,将JSON解析为Java数组的标准方法是什么?
整体流程如下:
- Javascript在当前页面上编译大量数据并将其存储在数组中。
- 数组对象编码为JSON。
- Java代码保存了JSON。
- 重复和Java代码为每个页面编译成功的JSON。
- Java代码向服务器提交一个巨型JSON。
我遇到的另一个问题是5.您如何安全地向服务器提交大型JSON数据?
在客户端,如果仅支持现代浏览器,则可以使用本机JSON.stringify()API。 否则,json2.js库很好。
在服务器端,有一大堆库可供查看:
- jackson
- JSON-LIB
- GSON
- 以及更多Java JSON库 ……
我首先指的是jackson,在很多情况下它似乎是最快的。 但是,每当我需要回到它时,我发现它的文档更难以理解。 对于不需要最高速度但仍具有完全可接受的结果的较小任务,Json-lib有时更容易掌握。 Gson也有良好的声誉并且非常灵活,但我之前遇到的基准似乎表明它的表现不如jackson。 新发布的1.5版本可能已经改进了,但我不知道。
它取决于您想要的灵活程度,您需要的性能,以及您是否想要一个简单的API,或者您是否想要更复杂的API。
关于安全性,我认为这里最好的选择是支持连接的SSL。 否则你只需使用基于JS的加密就可以让窃听者变得更难,但这并不能保护你太多。 为此寻找SJCL(斯坦福Javascript加密库)。
我建议你使用json2.js 。 好的部分是,如果本机JSON可用,则使用相同的接口。 json2.js负责有条件地添加函数。
要提交数据,请执行以下操作:
$.ajax({ type: 'post', data: JSON.stringify(data), contentType: 'application/json', dataType: 'json' });
这也假定服务器正在使用JSON进行响应。
如果您在传输过程中需要安全性,则可以使用SSL。
关于Java JSON解析器存在一个问题 。 我碰巧喜欢json-simple 。 它符合它的名字,JSONObject和JSONArray分别实现了Map和List,这是我觉得有用的一个特性。
在Java端,您可以使用Flexjson来解析JSON。 与其他JSON反序列化器相比,它使用起来非常简单并且表现相当不错。 此外,它将它直接反序列化到模型对象中,而不是必须编写锅炉代码以在JSONObject / JSONArray之间转换为数据模型。
http://flexjson.sourceforge.net
至于您关于安全的问题,以及“Java代码向服务器提交一个MEGA JSON”没有意义。 您担心哪些用例?