Всем тем, кто знаком с rapidjson, у меня есть следующая проблема:
У меня есть определенная функция, которая принимает в качестве параметра дату, и если эта дата существует в файле json, метод выполняет некоторые операции, а если нет, то другие операции.< br> В целом это выглядит так: (не настоящий код, скорее псевдо)
Функция:
void updateData(string date) {
//
//code to turn date from string to const char* (tested)
//
if (v.HasMember(date)) { //v is a value
Value d;
d=v[date];
//
//code that involves getting data from d (d is object) using HasMember
//
} else {
//generic code that has nothing to do with json
}
Файл JSON:
{
"main": {
"v": {
"2014-10-02" : {
//some fields
},
"2014-10-03" : {
//some fields
}
}
}
}
Итак, в первый раз, когда я вызываю updateData для даты "2014-10-02", он работает правильно (выполняет часть if).
Проблема заключается в том, что когда я вызываю updateData для другой даты (например, "2014-10-03", которая должен работать хорошо) он всегда выполняет неправильную часть (другую часть), и даже когда я возвращаюсь к первой дате, он все равно выполняет другую часть. (при выталкивании многих утверждений (в основном isString())).
Так действительно ли HasMember является проблемой здесь, в том смысле, что он, возможно, изменяет объект?
И существуют ли какие-либо альтернативные способы поиска члена, кроме этого?
Любой совет приветствуется...