summaryrefslogtreecommitdiffstats
path: root/src/uscxml/Message.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/uscxml/Message.cpp')
-rw-r--r--src/uscxml/Message.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/uscxml/Message.cpp b/src/uscxml/Message.cpp
index 4591484..b664fd1 100644
--- a/src/uscxml/Message.cpp
+++ b/src/uscxml/Message.cpp
@@ -682,7 +682,15 @@ std::string Data::toJSON(const Data& data) {
os << "]";
} else if (data.atom.size() > 0) {
if (data.type == Data::VERBATIM) {
- os << "\"" << data.atom << "\"";
+ os << "\"";
+ for (int i = 0; i < data.atom.size(); i++) {
+ // escape string
+ if (data.atom[i] == '"') {
+ os << '\\';
+ }
+ os << data.atom[i];
+ }
+ os << "\"";
} else {
os << data.atom;
}