私は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++ で処理できるように柔軟に変更できます。
すべてのキーをトラバースし、値でソートすることは可能でしょうか? はいの場合、それを行う方法は?