Mercurial > code
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 |