将JSON映射到XML的主要问题是什么?反之亦然?我遇到了一系列问题,但如果其他人可以添加他们在两者之间进行转换时遇到的问题,那将会非常有用。
我的清单是:
答案 0 :(得分:2)
免责声明:我是Jsonix的作者,这是一个用JavaScript编写的XML< - > JSON转换库。所以我从复杂的XML和JSON之间的映射经验谈起了一点。
JSONArray
或JSONObject
(以JSON交换格式甚至任何JSONText
- 也是null,boolean,string,number)。 XML需要一个根元素。1
可以是字符串,布尔值,十几种数字类型等。您必须知道模式才能知道类型。item*
),可能包装(items/item*
),或者在简单类型的情况下表示为列表类型(<items>a b c d</items>
)。JSONObject
的属性未排序。 (你提到这个。)JSONObject
中,属性名称将是唯一的。 (你提到这个。)JSONObject
和JSONArray
。在JSONArray
中,您只有项目,没有命名组件(类似于属性或子元素)。在JSONObject
中,您只有属性(JSONMembers
),它们总是“命名”(这类似于XML的属性和子元素,但不类似于文本节点)。xsi:type
构造,有点难以处理。指定文档实例中元素值的类型。QName
s)取决于XML文档其他部分的声明。例如,将my:Element
设置为xs:QName
- 某处的值,此值将取决于文档中如何声明my
命名空间前缀。由于可以声明和重新声明名称空间,因此必须非常精确地遵循它们的声明才能找到限定名称的名称空间。答案 1 :(得分:1)
将特定的JSON对象(或对象类)转换为XML通常没有问题。编写一个可以处理任何 JSON对象的转换器很困难。问题本质上是因为您希望简单的JSON最终成为简单的XML,但是您发现自己扭曲设计来处理边缘情况,例如JSON合法而不是XML的字符,保留区别,例如数字之间的区别10和字符串“10”,或担心JSON“null”的最佳表示。