2016-10-15 25 views
1

私はhttps://github.com/nlohmann/jsonを使用してJSONファイルをプログラムにロードしています。C++ - JSONまたは配列をベクトルに変換する

json jsonFile; 
ifstream ifs("data/test.json"); 
ifs >> jsonFile; 

// create JSON from stream 
json j_complete(jsonFile); 

をそして私は経由して、それへのアクセス権を持っている:この時点で
、私はそれをロードしています

jsonFile["data"][X][Y] // X, Y are indexes 

しかし、私はこのことからベクトルを作成したい - 私はこれをどのように行うことができますか?ここ
は、このファイルのサンプルである:

{ 
    "cols": [ 
     "id", 
     "title", 
     "quantity", 
     "price" 
    ], 
    "data": [ 
     [ 
      12, 
      "Guzman", 
      6, 
      "6.31" 
     ], 
     [ 
      2, 
      "..", 
      5, 
      "4.34" 
     ], 
     [ 
      3, 
      "Goldeniererere", 
      14, 
      "4.15" 
     ] 
    ] 
} 

答えて

0

JSONパーサーはJSONアレイの整数を受け入れるように[]演算子をオーバーロードしています。したがって、ベクトルと同じ方法でアクセスされますが、基になるデータ構造にはあまり共通していません。したがって、それをstd :::ベクトルに戻す必要があります。他の場所でデータを使用したい場合は、JSONのフィールドをC++のようなものに変換したいこともあります。 {int id、std :: string title、int quantity、float price}のようなものです。

次に、薄いstd :: vectorラッパーを使ってメモリ内の構造体のフラットC++リストを作成します。

関連する問題