Как отсортировать в алфавитном порядке элементы внутри объекта типа JsonValue?

let get_albums_response = api
        .request("video.getAlbums", &mut get_albums_params)
        .await
        .unwrap();


Мне нужно создать реплику объекта get_albums_response и отсортировать в нем - в алфавитном порядке элементы, которые находятся в get_albums_response["response"]["items"] по полю title.
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
vabka
@vabka
Токсичный шарпист
Можно вот так попробовать, но советую уйти от крейта vkapi, тк он даже нормально не типизирован и нужно работать с json-ами, будто на js.

let get_albums_response = api.request("video.getAlbums", &mut params).await.unwrap();
let mut items: Vec<&JsonValue> = get_albums_response["response"]["items"].members().collect();
items.sort_by(|a, b| a["title"].as_str().cmp(&b["title"].as_str()));

Нужный результат будет лежать в переменной items.

В этом плане vkclient будет гораздо удачнее, тк позволяет работать с serde.
https://crates.io/crates/vkclient

Да и даже она не очень много бенефитов даёт и я бы навелосипедил вокруг reqwest
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы