Рассмотрим фрагмент кода, как показано ниже
const char* jstring;
jstring = net->Classify(224, 224, imgCUDA, &confidence);
std::cout <<jstring << std::endl;
join_prop = json_tokener_parse( jstring);
printf("join prop is %s\n",json_object_to_json_string(join_prop));
. Вызов в Classify, где создается и возвращается json.Определение метода классификации -
const char* Classify( uint32_t width, uint32_t height, float* rgb, float* confidence=NULL);
Фрагмент внутри Classify приведен ниже
jstring = json_object_to_json_string(properties);
std::string jstring_str(jstring);
json_object_put(properties);
std::cout<< "jstring_str is : "<<jstring_str << std::endl;
return jstring_str.c_str();
Выводы выводятся на экран в разных точках этого фрагмента кода.Выводы следующие:
В пределах значения Classify jstring_str до возврата
jstring_str: {"head_gear": [{"trust": 0.000000, "name":"Нет"}, {"доверие": 1.000000, "имя": "Кепка"}, {"доверие": 0.000000, "имя": "Шлем"}]}
2 значение в jstring из оператора std::cout <<jstring << std::endl;
{ "head_gear": [ { "confidence": 0.000000, "name": "None" }, { "confidence": 1.000000, "name": "Cap" }, { "confidence": 0.000000, "name": "Helmet" } ] }
Однако, по команде join_prop, кажется, что неожиданный вывод, как показано ниже
Пропуск объединения равен нулю
Я ожидал, что токенРазобрать jstring и преобразовать его в json.Было бы очень полезно, если бы я мог понять, почему я получаю команду prop как ноль.Любое понимание было бы полезно, так как я заблудился, пытаясь найти причину для этого.
Вывод, кажется, является действительным JSON на основе https://jsonformatter.curiousconcept.com/