diff options
author | Danny van Bruggen <lol@meuk.info> | 2018-02-25 13:07:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-25 13:07:34 +0100 |
commit | 506db60d3a9c92c11ae30e1d4f0acf29c66aa1d0 (patch) | |
tree | 66c633c48b947091d054462de61c1f39982d0e2c | |
parent | f643da5d10fe763e45cce419b57e5b2d4f0dc712 (diff) | |
parent | a7fb7ad7492f5b8b7a183864a12863edfe3895fd (diff) | |
download | javaparser-506db60d3a9c92c11ae30e1d4f0acf29c66aa1d0.tar.gz |
Merge branch 'master' into small_things
-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 |