用的还是之前的我做JSON工具类测试的那几个object类,看看XSTREAM都生成些什么垃圾代码吧 :
输出:
{"map":{"entry":[{"string":"obj1","CObj":{"oarray":{"int":"352","boolean":"false","string":"kick"},"ii":"7","bb":"true","ss":"你好","aList":{"string":"hello","boolean":"false","BObj":{"innerhm":{"entry":[{"string":"sina","big-decimal":"7.4353999999999995651478457148186862468719482421875"},{"string":["gigi","高兴"]}]},"map":""}}}},{"string":"obj2","CObj":{"@reference":"..//..//entry//CObj"}}]}}
BUG1:生成的reference这个有个屁用,只有xstream自己知道(反向生成Object)
BUG2:有必要把HashMap生成得这么复杂吗?对于JSON来说,我需要的HashMap的key肯定是String,没必要来个{"string":"obj2"}这么麻烦的key定义,我需要的是像obj2: {}这样的直接。
看来用xstream来生成json还是很不方便的,功能有限,垃圾数据太多。
import
java.util.HashMap;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;
public class Test ... {
public static void main(String[] args) throws Exception...{
CObj cObj = new CObj();
XStream xStream2 = new XStream(new JettisonMappedXmlDriver());
HashMap testMap = new HashMap();
testMap.put("obj1", cObj);
testMap.put("obj2", cObj);
System.out.println(xStream2.toXML(testMap));
}
}
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;
public class Test ... {
public static void main(String[] args) throws Exception...{
CObj cObj = new CObj();
XStream xStream2 = new XStream(new JettisonMappedXmlDriver());
HashMap testMap = new HashMap();
testMap.put("obj1", cObj);
testMap.put("obj2", cObj);
System.out.println(xStream2.toXML(testMap));
}
}
{"map":{"entry":[{"string":"obj1","CObj":{"oarray":{"int":"352","boolean":"false","string":"kick"},"ii":"7","bb":"true","ss":"你好","aList":{"string":"hello","boolean":"false","BObj":{"innerhm":{"entry":[{"string":"sina","big-decimal":"7.4353999999999995651478457148186862468719482421875"},{"string":["gigi","高兴"]}]},"map":""}}}},{"string":"obj2","CObj":{"@reference":"..//..//entry//CObj"}}]}}
BUG1:生成的reference这个有个屁用,只有xstream自己知道(反向生成Object)
BUG2:有必要把HashMap生成得这么复杂吗?对于JSON来说,我需要的HashMap的key肯定是String,没必要来个{"string":"obj2"}这么麻烦的key定义,我需要的是像obj2: {}这样的直接。
看来用xstream来生成json还是很不方便的,功能有限,垃圾数据太多。