Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java json.org xml生成器创建了不正确的数组输出_Java_Xml_Arrays_Json - Fatal编程技术网

Java json.org xml生成器创建了不正确的数组输出

Java json.org xml生成器创建了不正确的数组输出,java,xml,arrays,json,Java,Xml,Arrays,Json,我使用json.org XML.toString()方法从json数据创建XML。这个方法接受一个JSONObject参数并创建一个等价的XML结构,但当涉及数组时,我得到了意想不到的结果 此代码显示问题: String jsonString = "{ \"group\" : [ { \"a\" : { } }, {\"a\" : { } } ] }"; System.out.println(XML.toString(new JSONObject(jsonString))); 产生: <

我使用json.org XML.toString()方法从json数据创建XML。这个方法接受一个JSONObject参数并创建一个等价的XML结构,但当涉及数组时,我得到了意想不到的结果

此代码显示问题:

String jsonString = "{ \"group\" : [ { \"a\" : { } }, {\"a\" : { } } ] }";
System.out.println(XML.toString(new JSONObject(jsonString)));
产生:

<group><a></a></group><group><a></a></group>

而我期望:

<group><a></a><a></a></group>

也就是说,我希望只有一个“group”元素,而不是每个元素“a”都有一个


我使用了在线验证器来检查JSON是否有效。我是误解了什么,做错了什么,还是这是一个bug?

这不可能是您所期望的,因为数组中名为
“group”
的对象可能包含
“a”
之外的其他值。例如,如果JSON是

{ "group" : [ { "a" : { }, "b" : { } }, {"a" : { }, "b" : { } } ] }
你的计划会产生效果的

<group><a></a><b></b><a></a><b></b></group>


在两对
“a”
“b”
之间没有任何分离,这是真的,但我的期望是基于我的例子,而不是你的。无论如何,问题是为什么XML有多个组。我本可以说得更清楚一点,规则必须适用于所有情况。我向您展示了您选择的一个简单示例如何掩盖了一个更复杂的问题。就像你问为什么所有的蔬菜都是酸的;我说“不,它们不是,胡萝卜是甜的”,然后你抱怨,因为你想到的其实是大黄,我怎么敢提起胡萝卜。XML有不止一个组,因为这是XML通常处理数组的方式:通过重复相同类型的元素。谢谢-你当然是对的。我只是对你的答案想得不够。我的想法是模糊的,因为在我使用JSON时,我总是使用同构数组。嗯……我最初错过了重要的代码行(XML.toString)——也许现在这个问题有意义了!