Json转换为xml转换生成令人困惑的xml字符串

时间:2016-08-08 12:28:59

标签: java json xml gson

我有一个DTO类,我将它转换为json并存储到DB。现在我需要Json的相应XML文件。

Class FooDto {
    private String id;
    // Array of strings.
    private ArrayList<String> names;
    // Object of some other class having two values String socId and String socName.
    private SomeOtherClass soc;
}

我正在使用 gson google库来创建json对象和xml字符串。

FooDto fooDto = new FooDto();
Gson gson = new Gson();
String jsonString = gson.toString(fooDto);
JSONObject json = new JSONObject(jsonString);
String xmlString = XML.toString(json, "Parent");

当FooDto对象的每个成员包含一些值时,它会生成一个完美的xml。

<Parent>
  <id>Some id</id>
  <names>John</names>
  <names>Mac</names>
  <soc>
    <socId>123</socId>
    <socName>XYZ</socName>
  </soc>
</Parent>

但问题是,当对象中的值为空时,它会生成一个令人困惑的xml,之后无法转换相同的json和类对象。

对于空对象到JSON字符串是

  

{ID: “”,   名称:(“”),   soc:{}}

对于JSON to XML String

<Parent>
  </id>
  </names>
  <soc></soc>
</Parent>

从XML重新生成JSON

  

{ID:{},   名称:{},   soc:{}}

当我从这个json创建类对象时,它会导致错误,因为它期望id为字符串,并且名称为string数组。还有其他更好的方法吗?

0 个答案:

没有答案