0

以下に示すコード スニペットを検討してください。

            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));

json が作成されて返される Classify への呼び出しが行われます。分類方法の定義は

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();

出力は、このコード スニペットのさまざまなポイントで画面に出力されます。出力は次のとおりです。

  1. 戻り前の jstring_str の Classify 値内

    jstring_str is : { "head_gear": [ { "信頼度": 0.000000, "名前": "なし" }, { "信頼度": 1.000000, "名前": "上限" }, { "信頼度": 0.000000, "名前": "ヘルメット" } ] }

ステートメントからの jstring の 2 つの値std::cout <<jstring << std::endl;

{ "head_gear": [ { "confidence": 0.000000, "name": "None" }, { "confidence": 1.000000, "name": "Cap" }, { "confidence": 0.000000, "name": "Helmet" } ] }
  1. ただし、join_prop のコマンドでは、以下に示すように予期しない出力があるようです。

結合プロップが null です

トークナーが jstring を解析して json に変換することを期待していました。join prop が null になる理由について何か考えがあれば、本当に役に立ちます。この原因を見つけようとして迷っているので、どんな洞察も役に立ちます。

出力は、 https: //jsonformatter.curiousconcept.com/ に基づく有効な json のようです

4

1 に答える 1