26

JSON 是否像 XML 一样需要根元素。据我所知,这是一个有效的 JSON 字符串。

{
    "email":[
        {
            "type":"home",
            "name":"john.doe@gmail.com"
        },
        {
            "type":"work",
            "name":"jdoe@gmail.com"
        }
    ]
}

我需要将 JSON 转换为 XML,反之亦然。但是,尽管当我将其转换为 XML 时,上面的 JSON 是有效的,但它是无效的吗?我错过了什么还是这是正常的?

4

3 回答 3

36

JSON 文档的最外层是“对象”(大括号)或“数组”(方括号)。

任何将 JSON 转换为 XML 的软件都必须调和这样一个事实,即它们是具有不同规则的不同数据模型。不同的转换工具以不同的方式处理这些差异。

更新 (2021-09-03):如评论中所述,JSON 规范的后续迭代允许最外层是字符串、数字、布尔值或 null。

于 2012-05-03T09:23:20.157 回答
16

根据http://json.org/右侧窗格中修改后的 Backus-Naur-Form,JSON 数据结构的根元素可以是以下七种类型/值中的任何一种:

Object
Array
String
Number
true
false
null

例子

因此,以下所有示例都是有效的 JSON 根元素:

{
  "name": "Jpsy",
  "age": 99
}
[ 1, 2, "three", 4, 5 ]
"abcdefg"
123.45
true
false
null
于 2018-12-07T16:51:30.360 回答
2

这是正常的,json和xml没有相同的规则。您可以将根括号“{”和“}”转换为根元素,以确保没有转换问题

于 2012-05-03T07:27:58.650 回答