RestAPIにscala/liftを使用しています。内部的には、出力としてXml.toJson()を介してjsonに変換されるxmlを生成しています。
今、私は私を狂わせるいくつかの奇妙な行動に気づきました。
たとえば、私は次のxmlを持っています:
<data>
<item>
<foo>1</foo>
<bar>1</bar>
</item>
<item>
<foo>2</foo>
<bar>2</bar>
</item>
</data>
xml.toJson()の結果は次のようになります。
JObject(
List(
JField(
data,JObject(
List(
JField(item,
JArray(
List(
JObject(
List(
JField(foo,JString(1)),
JField(bar,JString(1)))
),
JObject(
List(
JField(foo,JString(2)),
JField(bar,JString(2))
)
)
)
)
)
)
)
)
)
)
しかし、新しいxml要素を追加した場合:
<data>
<baz>234</baz>
<item>
<foo>1</foo>
<bar>1</bar>
</item>
<item>
<foo>2</foo>
<bar>2</bar>
</item>
</data>
JArrayに関しては結果が異なります。
JObject(
List(
JField(data,JObject(
List(
JField(baz,JString(234)),
JField(item,JObject(
List(
JField(foo,JString(1)),
JField(bar,JString(1))
))
),
JField(item,JObject(
List(
JField(foo,JString(2)),
JField(bar,JString(2))
))
)
)
))
)
)。
配列が定義されておらず、「item」という名前のオブジェクトが2つあります。これは正常な動作ですか?「item」タグの周りに何かをラップせずに配列を作成したいと思います。