1. JSON 객체에
{
"description": "25""
}
문자열 형식으로 변환하면 자동으로 백슬래시가 추가되어 "25가 됩니다. "", 그런 다음 이를 REST API에 전달하고 MongoDB에 저장합니다.
이때 MongoDB 쉘을 사용하여 데이터를 표시하면 "25""가 되는데, 맞습니다.
2. 그런데 C 드라이버를 사용해서 읽어보면 이렇습니다. 값을 반환하면 "25"" 가 표시되므로 이를 브라우저에 직접 반환하고 jQuery.parseJSON()을 사용하여 구문 분석하면 오류가 보고됩니다.
세그먼트 C를 문자열로 직렬화할 때는 "with"를 판단해서 바꿔야 합니다.
void string_to_json_string(std::string const& str, std::string & json_str) {
std::stringstream
for (size_t; i = 0; i < str.length(); i) {
if (str[i] == '"') {
ss <} else {
ss << str[i]
}
}
json_str =
}
🎜>3. JavaScript가 "25""에 대해 jQuery.parseJSON()을 호출한 후 백슬래시가 사라지고 "25""로 변경된 경우 해당 속성 값에 대해 다시 jQuery.parseJSON을 호출하면 오류가 다시 발생합니다.
JavaScript는 오류 방지를 위해 코드를 작성해야 합니다.
removeDoubleQuotes: function(str) {
return str.replace(""", "\"");
},
이것은 double의 환생입니다. JSON의 따옴표. 충분히 귀찮으니 조심하세요.