comparison C++/modules/Json/Json.cpp @ 445:f5e62f6c1475

Json: add escape free function
author David Demelier <markand@malikania.fr>
date Mon, 26 Oct 2015 19:29:34 +0100
parents d485d36a8de1
children 902b034df6e3
comparison
equal deleted inserted replaced
444:fc055d2a4a2c 445:f5e62f6c1475
171 Document::Document(File file) 171 Document::Document(File file)
172 { 172 {
173 m_value = convert(json_load_file, file.path.c_str(), 0); 173 m_value = convert(json_load_file, file.path.c_str(), 0);
174 } 174 }
175 175
176 std::string escape(std::string value) noexcept
177 {
178 for (auto it = value.begin(); it != value.end(); ++it) {
179 switch (*it) {
180 case '\\':
181 case '/':
182 case '"':
183 it = value.insert(it, '\\');
184 it++;
185 break;
186 case '\b':
187 value.replace(it, it + 1, "\\b");
188 it += 1;
189 break;
190 case '\f':
191 value.replace(it, it + 1, "\\f");
192 it += 1;
193 break;
194 case '\n':
195 value.replace(it, it + 1, "\\n");
196 it += 1;
197 break;
198 case '\r':
199 value.replace(it, it + 1, "\\r");
200 it += 1;
201 break;
202 case '\t':
203 value.replace(it, it + 1, "\\t");
204 it += 1;
205 break;
206 default:
207 break;
208 }
209 }
210
211 return value;
212 }
213
176 } // !json 214 } // !json