2017-09-24 6 views
0

nlohmannのjson.hppを使用してjsonファイルを解析しています。C++戻り関数の型は、nsonhmann json.hpp経​​由でjson配列を返します。

"image_captureOptions": { 
    "captureInterval" : 1000, 
    "captureLimit" : 5, 
    "imageExtension" : "jpg", 
    "imageResizeDims" : [640, 480] 
}, 
... 

JSONは次のようになり解析するクラスの関連部分:私はこのようなルックスと心配JSONファイルの一部

namespace json = nlohmann; 

class ConfigReader { 

    json::json data; 

    void readConfigFile(std::string path) { 
     std::ifstream inputStream(path); 

     inputStream >> data; 
} 

public: 
    ConfigReader() { 

    static const std::string defaultPath = "config.json"; 

    readConfigFile(defaultPath); 
} 

    int getImageCaptureInterval() { return data["image_captureOptions"]["captureInterval"]; } 
    int getImageCaptureLimit() { return data["image_captureOptions"]["captureLimit"]; } 
    std::string getImageExtension() { return data["image_captureOptions"]["imageExtension"]; } 
    ???? getImageResizeDims() { return data["image_captureOptions"]["imageResizeDims"]; } 
}; 

は、最後の行に疑問符を表しますその関数の戻り値の型を指定する方法についての私の混乱。

+0

autoをお試しください。ドキュメントを参照してください。 –

+0

私はC++ 11を使用しています – interwebjill

答えて

1

このライブラリの便利な点の1つは、標準タイプへの変換が組み込まれていることです。ライブラリは、ユーザーが提供するタイプとの変換を行うメカニズムも提供しています。 。この場合

、あなたはちょうどそれを使用することができます。

std::vector<int> getImageResizeDims() { 
    return data["image_captureOptions"]["imageResizeDims"]; 
} 

実行時にJSONのサブオブジェクトは、変換がtype_errorをスローし、std::vector<int>に変換できない場合。

関連する問題