Commit 1a7803d7 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

hacky json escape

parent f1c97362
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -83,7 +83,7 @@ FnordMetric = (function() {
    document.getElementById("wrap").innerHTML =
        navbar +
        "<div id='query_editor'>" +
          "<textarea id='query_editor_textarea'>DRAW BAR CHART;\nDRAW LEFT AXIS;\n\nSELECT\n\t1 as one,\n\t2 as two,\n\t3 as three,\n\t4 as four;</textarea>" +
          "<textarea id='query_editor_textarea'>DRAW BAR CHART;\nDRAW LEFT AXIS;\n\nSELECT\n\t'fnord' as series,\n\t5 as x,\n\t10 as y,\n\t4 as z;</textarea>" +
        "</div>" +
        "<div class='headbar small'>Query executed in...</div>" +
        "<div id='query_editor_error'></div>" +
+26 −5
Original line number Diff line number Diff line
@@ -25,18 +25,16 @@ void JSONOutputStream::endObject() {
  output_->printf("}");
}

// FIXPAUL escaping
void JSONOutputStream::addObjectEntry(const std::string& key) {
  output_->printf("\"%s\": ", key.c_str());
  output_->printf("\"%s\": ", escapeString(key).c_str());
}

void JSONOutputStream::addComma() {
  output_->printf(",");
}

// FIXPAUL escaping
void JSONOutputStream::addString(const std::string& key) {
  output_->printf("\"%s\"", key.c_str());
void JSONOutputStream::addString(const std::string& string) {
  output_->printf("\"%s\"", escapeString(string).c_str());
}

void JSONOutputStream::beginArray() {
@@ -47,5 +45,28 @@ void JSONOutputStream::endArray() {
  output_->printf("]");
}

std::string JSONOutputStream::escapeString(const std::string& string) const {
  std::string new_str;

  for (int i = 0; i < string.size(); ++i) {
    switch (string.at(i)) {
      case '"':
        new_str += "\\\"";
        break;
      case '\n':
        new_str += "\\n";
        break;
      case '\t':
        new_str += "\\t";
        break;
      default:
        new_str += string.at(i);
    }
  }

  return new_str;
}


}
}
+1 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ public:
  void addString(const std::string& string);

protected:
  std::string escapeString(const std::string& string) const;
  util::OutputStream* output_;
};