1

私はPicoJSONを使用して、JavaScript から取得した JSON を C++ に処理しています。

フォームのキーと値を持つ JSON がある場合、次{"val1":3, "val2":4}のように特定のすべてのキーの値を取得できます。

picojson::value v;

const string json2("{\"val1\":3,\"val2\":4}");

int val1 = (int)v.get("val1").get<double>(); // val1 will be equal to 3
int val2 = (int)v.get("val2").get<double>(); // val2 will be equal to 4

問題は、JavaScriptからJSON 形式のオブジェクトの配列があり、 . したがって、コードは次のようになります。[{"name": 3},{"name": 1},{"name": 2}]

picojson::value v;
const string json1("[{\"name\": 3},{\"name\": 1},{\"name\": 2}]");

それらをソートすることが期待されているので、期待される出力は次のようになります。

"[{\"name\": 1},{\"name\": 2},{\"name\": 3}]"
  • リンクされたリストで「forループ」を使用して、そのデータを抽出してソートする必要がありますか? もしそうなら、どのように?
  • 多分これは正規表現を使用して抽出できますか?もしそうなら、どのように?
  • 並べ替えるために、配列を配列の配列に変換する必要がありますか? もしそうなら、どのように?
  • C++ で認識できる並べ替え可能なデータ構造を取得するには、構造体またはベクトルを作成する必要がありますか? もしそうなら、どのように?

注:要素の数はさまざまです。これより多い/少ない場合があります。

編集:

データ構造がこの形式の場合、このタスクを解決できますか (私が持っていたように{"val1":3, "val2":4}) :

{"name3": 3, "name1" : 1, "name2": 2, "name97" : 97, ... }

C++ で処理できるように柔軟に変更できます。

すべてのキーをトラバースし、でソートすることは可能でしょうか? はいの場合、それを行う方法は?

4

1 に答える 1