2

Java Jettison JSON パッケージに実際の問題があります。何らかの理由で、長さ 1 のリストと長さ > 1 のリストの異なる表現を取得しています。

次の例では、長さ 1 (list1) と長さ 2 (list2) の 2 つのリストを作成していることがわかります。

@Test
public void test() throws JsonParseException {

    List<String> list1 = new ArrayList<String>();
    list1.add("1");

    List<String> list2 = new ArrayList<String>();
    list2.add("1");
    list2.add("2");

    XStream xstream = new XStream(new JettisonMappedXmlDriver());
    xstream.setMode(XStream.XPATH_ABSOLUTE_REFERENCES);

    String list1String = xstream.toXML(l1);
    String list2String = xstream.toXML(l2);

}

私が返すものは次のとおりです。

list1 = {"list":[{"string":**1**}]},
list2 = {"list":[{"string":**[1,2]**}]}.

私が取り戻したいのは:

list1 = {"list":[{"string":**[1]**}]},
list2 = {"list":[{"string":**[1,2]**}]}

なぜこうなった?iPhone JSON パーサーを狂わせています (もちろん、これは問題の縮小版です)。

Jettison を捨てて、Jackson と一緒に仕事をしようという議論をたくさん見てきましたが、今の私には選択肢がありません。

ありがとう!

4

0 に答える 0