Cześć, posiadam plik JSON z następującymi tekstami, który odczytuję i zapisuję do listy obiektów texts
private final ObjectMapper objectMapper = new ObjectMapper();
List<Text> texts = new ArrayList<>();
try {
JsonNode rootNode = objectMapper.readTree(new File(filePath));
Iterator<Map.Entry<String, JsonNode>> fields = rootNode.fields();
while (fields.hasNext()) {
Map.Entry<String, JsonNode> field = fields.next();
String abbr = field.getKey();
String fullText = field.getValue().asText();
Text text = new Text(abbr, fullText);
texts.add(text);
} catch (IOException e) {
e.printStackTrace();
}
}
Niestety, gdy chcę te teksty zapisać potem do pliku .sql, to wszystkie teksty które miały w JSONie taki wygląd:
{
"tzn.": "Oznacza \"To znaczy\"",
"jw.": "Oznacza \"Jak wyżej\"",
"dr": "Oznacza \"Doktor\""
}
Wyglądają tak:
INSERT INTO Texts(abbr, full_text) VALUES
('tzn.', 'Oznacza "To znaczy"'),
('jw.', 'Oznacza "Jak wyżej"'),
('dr', 'Oznacza "Doktor"'),
Kod wstawiania:
try (BufferedWriter writer = new BufferedWriter(new FileWriter("file.sql"))) {
writer.write("INSERT INTO Texts(abbr, full_text) VALUES\n");
for (Text text : texts) {
writer.write(String.format("\t('%s', '%s'),", text.getAbbr(), text.getFullText());
}
}
Już w debuggerze widzę, że Stringi z tej listy texts mają wycięte znaki . Jak obejść te escape`owanie znaku '' ?