我正在使用PicoJSON处理从 JavaScript 到 C++ 的 JSON。
如果我有一个带有键和值的 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++ 能够处理它。
那么是否可以遍历每个键并按值排序?如果是,该怎么做?