1

我在这类事情上没有丰富的经验,所以我认为最简单的方法是将键值对作为 post 参数发送,然后 servlet 容器将解析这些对并放入参数映射中。

但是我认为基于使用一些现成的解决方案(库)可以存在更方便的方法,这就是我要问的原因(和什么)。可以在决定中发挥作用的另一件事是我需要传输相当复杂的东西(即我想实现某种协议)。

4

2 回答 2

2

数据交换的两个真正选择是 XML 和 JSON。我已经广泛使用了这两种方法,现在 JSON 已经成为我的首选。

在这两者中,我认为 JSON 在所有方面都胜过 XML,除了一个。JSON 更简洁,更易于阅读。它更适合表示数据格式,因为它旨在将标签应用于离散数据单元。JSON 解析器编写起来要简单得多,并且需要的代码也少得多。我发现 JSON 支持的有限类型非常适合数据交换。JSON 没有为允许文档标记而负担的遗留语义。

此外,如果您的客户端使用 JavaScript,则对 JSON 的支持是固有的。

XML 的唯一优点是可能有更多更好的工具来处理这种格式的数据。不过,不得不说,JSON 本身就足够简单,不需要工具。

第三种选择可能是 URL 编码的关键字/值对,但我认为您很快就会发现这太局限了。

只是我的200美分。

见: http: //www.json.org/

您可能还对我的轻量级开源无阻碍JSON 解析器感兴趣。


编辑:2010-08-10 00:43

为了回应有关使用 JS eval 的安全性的评论,JSON 网站的以下摘录可能会引起人们的兴趣:

要将 JSON 文本转换为对象,可以使用 eval() 函数。eval() 调用 JavaScript 编译器。由于 JSON 是 JavaScript 的真子集,因此编译器将正确解析文本并生成对象结构。文本必须用括号括起来,以避免在 JavaScript 语法中出现歧义。

var myObject = eval('(' + myJSONtext + ')');

eval 函数非常快。但是,它可以编译和执行任何 JavaScript 程序,因此可能存在安全问题。当来源受信任且有能力时,指示使用 eval 。使用 JSON 解析器要安全得多。在通过 XMLHttpRequest 的 Web 应用程序中,只允许与提供该页面的同一源进行通信,因此它是受信任的。但它可能没有能力。如果服务器的 JSON 编码不严格,或者它没有严格验证其所有输入,那么它可能会传递可能携带危险脚本的无效 JSON 文本。eval 函数将执行脚本,释放其恶意。

为了防止这种情况,应该使用 JSON 解析器。JSON 解析器将仅识别 JSON 文本,拒绝所有脚本。在提供原生 JSON 支持的浏览器中,JSON 解析器也比 eval 快得多。预计原生 JSON 支持将包含在下一个 ECMAScript 标准中。

于 2010-10-09T19:30:30.807 回答
0

http://www.json.org/

于 2010-10-09T18:18:19.013 回答