使用XML或JSON的用途是什么?

时间:2013-04-21 21:08:48

标签: xml json

请不要打扰我。我找不到任何可以帮助我理解这一点的信息。

我已经编程了两年,我仍然没有使用过JSON和XML。对于JSON或XML,我无法用数据库做什么?我们只是将它们用作配置文件吗?

3 个答案:

答案 0 :(得分:5)

XML和JSON是通用的序列化格式。只要您想以简单的方式在应用程序之间交换数据,就可以使用它们。您不需要发明自己的文件格式。您可以使用标准化基础结构(序列化程序,库)。

例如,您如何向第三方发送结构化数据(例如有关销售或客户的信息)?您需要就数据格式达成一致。 XML和JSON非常方便。您可以轻松生成JSON,其他开发人员将立即了解其结构,并能够使用非常少的代码对其进行反序列化。

答案 1 :(得分:2)

虽然另一个答案基本上正确(两者都是数据交换的通用选项),但值得注意的是,存在一些重要的差异。 XML是为处理文档而构建的。 JSON用于描述对象。

  1. 字符编码,解析和验证。构建XML是为了让解析器自动处理这个,而JSON并不是那么多。
  2. 简洁,紧凑。 XML几乎不能像JSON那样做。
  3. 因此,如果您必须编写将数据转储到文件并且文件传输 sans 任何元数据(描述mime类型,字符编码或其他约定)的内容,XML可能是一种优越的方法,因为您可以使用适当的声明(和命名空间)将必要的元数据嵌入到数据中。当涉及到“文档”时,这一点尤为重要:JSON根本没有用于描述语言环境的原语,并且没有理智的标准方法来执行它,所有解析器都会理解。因此,如果有人做了一些非常愚蠢的事情,比如将你的UTF-8编码的JSON字符串转换为Shift-JIS,那么很幸运能让任何解析器以通用的方式理解它。 XML解决了这个问题(它还提供语言支持)。

    另一方面,如果您想要做的就是在高度受控的设置中交换一堆对象(即字符编码,语言等都是明确定义的参数),因此您不必担心任意的怪异按照你的方式 - 然后JSON提供了一个更紧凑的序列化格式,对于大多数程序员来说,这也是(可能)更容易阅读。最后,JSON特别适合Web应用程序,因为它本身就是有效的JavaScript。虽然使用eval之类的东西将JSON视为JavaScript代码的一部分,但对于使用任意JSON来说,这不是一个好的安全实践。它可以帮助简化任何前端的“启动和运行”阶段,对于您完全可以控制的Web应用程序(您需要做的就是“eval”它,尽管对于必须使用的代码再次任意JSON这是一个可怕的想法,因为这可能会使您暴露于其他站点以及您自己的安全漏洞。

答案 2 :(得分:2)

作为一个真实的例子,我曾经在一个与Ruby on Rails服务器交互的iOS应用程序上工作。服务器有一个SQL数据库和应用程序的许多逻辑。服务器接收来自iOS客户端的请求,检索并操作相关数据,然后将结果呈现为JSON,将其发送回客户端以用于任何操作。这是Ruby服务器应用程序向Objective-C iOS应用程序生成数据的简单方法。