diff options
author | Danny van Bruggen <hexagonaal@gmail.com> | 2018-02-22 19:23:11 +0100 |
---|---|---|
committer | Danny van Bruggen <hexagonaal@gmail.com> | 2018-02-22 19:23:11 +0100 |
commit | e297306b177eb9249f7fba34da6477d383969874 (patch) | |
tree | dce80c22526a9d4694624f8fdd63efbb5352b943 | |
parent | fbd8c73b0a66f3d71cd073c7b2cb61a1112f7ba6 (diff) | |
download | platform_external_javaparser-e297306b177eb9249f7fba34da6477d383969874.tar.gz platform_external_javaparser-e297306b177eb9249f7fba34da6477d383969874.tar.bz2 platform_external_javaparser-e297306b177eb9249f7fba34da6477d383969874.zip |
Escape eol's for JSON output
-rw-r--r-- | javaparser-core/src/main/java/com/github/javaparser/printer/JsonPrinter.java | 2 | ||||
-rw-r--r-- | javaparser-testing/src/test/java/com/github/javaparser/printer/JsonPrinterTest.java | 21 |
2 files changed, 22 insertions, 1 deletions
diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/JsonPrinter.java b/javaparser-core/src/main/java/com/github/javaparser/printer/JsonPrinter.java index 7357a3538..237051265 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/JsonPrinter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/JsonPrinter.java @@ -69,6 +69,6 @@ public class JsonPrinter { } private static String q(String value) { - return "\"" + value.replace("\"", "\\\"") + "\""; + return "\"" + value.replace("\"", "\\\"").replace("\n", "\\n").replace("\r", "\\r") + "\""; } } diff --git a/javaparser-testing/src/test/java/com/github/javaparser/printer/JsonPrinterTest.java b/javaparser-testing/src/test/java/com/github/javaparser/printer/JsonPrinterTest.java index fac1ee359..7e26254a4 100644 --- a/javaparser-testing/src/test/java/com/github/javaparser/printer/JsonPrinterTest.java +++ b/javaparser-testing/src/test/java/com/github/javaparser/printer/JsonPrinterTest.java @@ -9,6 +9,12 @@ import static com.github.javaparser.JavaParser.*; import static com.github.javaparser.utils.Utils.EOL; import static org.junit.Assert.*; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.io.BufferedWriter; + public class JsonPrinterTest { @Test public void testWithType() { @@ -51,4 +57,19 @@ public class JsonPrinterTest { JsonPrinter printer = new JsonPrinter(true); printer.output(unit); } + + @Test + public void issue1421() { + // Handle multi-line strings in JSON output + String code = "/* \n" + + "* Some comment\n" + + "*/\n" + + "public class Test {}"; + CompilationUnit unit = parse(code); + JsonPrinter printer = new JsonPrinter(true); + + String output = printer.output(unit); + + assertEquals("{\"type\":\"CompilationUnit\",\"types\":[{\"type\":\"ClassOrInterfaceDeclaration\",\"isInterface\":\"false\",\"name\":{\"type\":\"SimpleName\",\"identifier\":\"Test\"},\"comment\":{\"type\":\"BlockComment\",\"content\":\" \\n* Some comment\\n\"}}]}", output); + } }
\ No newline at end of file |