Wreq problem (Error(Json(Error("invalid type: integer `0)

as soon as I try this code :

extern crate reqwest;

use std::collections::HashMap;

fn main() -> Result<(), Box<std::error::Error>> {
    let resp: HashMap<String, String> = reqwest::get("https://www.rijksmuseum.nl/api/nl/collection?key=xxxxxx&format=json&type=schilderij&toppieces=True")?
        .json()?;
    println!("{:#?}", resp);
    Ok(())
}

I see this error message

 Finished dev [unoptimized + debuginfo] target(s) in 1m 40s
     Running `target\debug\json-try.exe`
Error: Error(Json(Error("invalid type: integer `0`, expected a string", line: 1, column: 24)))
error: process didn't exit successfully: `target\debug\json-try.exe` (exit code: 1)

I expect this as response

{
  "elapsedMilliseconds": 164,
  "count": 359,
  "artObjects": [
    {
      "links": {
        "self": "https://www.rijksmuseum.nl/api/nl/collection/SK-C-5",
        "web": "https://www.rijksmuseum.nl/nl/collection/SK-C-5"
      },
      "id": "nl-SK-C-5",
      "objectNumber": "SK-C-5",
      "title": "Schutters van wijk II onder leiding van kapitein Frans Banninck Cocq, bekend als de ‘Nachtwacht’",
      "hasImage": true,
      "principalOrFirstMaker": "Rembrandt Harmensz. van Rijn",
      "longTitle": "Schutters van wijk II onder leiding van kapitein Frans Banninck Cocq, bekend als de ‘Nachtwacht’, Rembrandt Harmensz. van Rijn, 1642",
      "showImage": true,
      "permitDownload": true,
      "webImage": {
        "guid": "92253da1-794d-49f4-9e3c-e4c160715f53",
        "offsetPercentageX": 50,
        "offsetPercentageY": 100,
        "width": 2500,
        "height": 2034,
        "url": "http://lh6.ggpht.com/wwx2vAS9DzFmmyeZefPjMtmCNOdjD80gvkXJcylloy40SiZOhdLHVddEZLBHtymHu53TcvqJLYZfZF7M-uvoMmG_wSI=s0"
      },

It looks like your code is reading the JSON data as HashMap<String, String>. That type means the keys are strings and the values are strings. An example of a HashMap<String, String> in JSON would be:

{
  "key1": "value1",
  "key2": "value2"
}

The example response you showed has many values that are not strings, such as 359 which is a number.

oke, any advice on a better data-type

and yes, It can be a string, a number or a nested json structure.

If you do expect that some entity in you program could be one of the several types, this is a good candidate for enum. Reqwest uses serde to deserialize json output, and serde has inherent support for this case (you might like to see "Untagged" at the bottom of page).