json字符串解析时有个问题不清楚,想请问下作者
ottoGithub opened this issue · 2 comments
ottoGithub commented
struct string_ref {
char const *str;
size_t len;
int length() const {
auto size = len;
for (size_t i = 0; i < len; ++i) {
if (str[i] == 92 || str[i] == 116 || str[i] == 50) // 92: ‘\’, 116: ‘t’, 50: ‘2’
size -= 1;
}
return static_cast(size);
}
bool operator!=(const char *data) const {
auto const str_length = strlen(data);
if (len != str_length) {
if (length() != str_length)
return true;
}
for (size_t i = 0; i < str_length; ++i) {
if (str[i] != data[i]) {
return true;
}
}
return false;
}
};
}
不知道上面的length() 函数中为何当str[i]=92,116,50的时候size要-1?
qicosmos commented
这里之前考虑的是处理一些特殊字符,现在看来没必要,已经去掉了。
qicosmos commented
之前是想处理key中含空格等特殊字符的情况,现在看来没必要,key就应该严格比较。