Невозможно добавить "," после пары ключ-значение в файле JSON при преобразовании из XML в Json с использованием Java - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь преобразовать xml в json и записываю этот json в файл, в журнале я получаю правильный результат в виде пары «ключ-значение», поскольку в журналах и при печати обрабатывается строка, но во время выполнения то же самое не получается отображается как «», добавляется после значения

    String xml = builder.toString();
    ObjectMapper mapper = new ObjectMapper();
    JSONObject jsonObj = XML.toJSONObject(xml,false);
    FileWriter fileWriter =new FileWriter(outputFileName);
    BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);  
    Object json = mapper.readValue(jsonObj.toString(), Object.class);
    ObjectWriter writer = mapper.writer(new DefaultPrettyPrinter());
    writer.writeValue(new File(outputFileName), json);`

Выход журнала:

{
  "cobrandCardPopup" : {
    "linkClickId" : "T10_AirActiveNeedsNonAirOnboarding_HasCardSE_HighMilesBalance",
    "linkLinkStatus" : "_self",
    "LinkTitleAttr" : "",
    "linkFollowCheckbox" : "",
    "linkURL" : "http://hotels.jetprivilege.com",
    "LinkAriaLabel" : "",
    "ToasterImageContainer" : {
      "ToasterMobileImage" : "/iwov-resources/images/splash-popups/Hotel_Mob.gif",
      "ToasterImage" : "/iwov-resources/images/splash-popups/Hotel.gif",
      "ToasterMobileImageAltText" : "Hotel",
      "ToasterImageAltText" : "Hotel"
    },
    "LinkRoleAttr" : "",
    "ToasterTextContainer" : {
      "popupInterval" : "",
      "linkText" : "",
      "popupText" : ""
    },
    "ToasterType" : "Image"
  }
}

В файле

{
  "cobrandCardPopup" : {
    "linkClickId" : "T10_AirActiveNeedsNonAirOnboarding_HasCardSE_HighMilesBalance"
    "linkLinkStatus" : "_self"
    "LinkTitleAttr" : ""
    "linkFollowCheckbox" : ""
    "linkURL" : "http://hotels.jetprivilege.com"
    "LinkAriaLabel" : ""
    "ToasterImageContainer" : {
      "ToasterMobileImage" : "/iwov-resources/images/splash-popups/Hotel_Mob.gif"
      "ToasterImage" : "/iwov-resources/images/splash-popups/Hotel.gif"
      "ToasterMobileImageAltText" : "Hotel"
      "ToasterImageAltText" : "Hotel"
    },
    "LinkRoleAttr" : ""
    "ToasterTextContainer" : {
      "popupInterval" : ""
      "linkText" : ""
      "popupText" : ""
    },
    "ToasterType" : "Image"
  }
}

1 Ответ

0 голосов
/ 14 января 2019

Вы должны сделать как можно меньше преобразования данных, чтобы 1. упростить код и 2. уменьшить вероятность ошибок

Вы можете сделать либо: вообще не используйте jackson objectmapper, поскольку вы уже отображаете на JsonObject

String xml = builder.toString();
JSONObject jsonObj = XML.toJSONObject(xml);
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(outputFileName));
bufferedWriter.write(jsonObj.toString())

Или вы можете использовать файлWriter Джексона напрямую:

ObjectMapper mapper = new ObjectMapper();
ObjectWriter writer = mapper.writer(new DefaultPrettyPrinter());
writer.writeValue(new File(outputFileName), jsonObj);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...