Does serde not consider [] to be valid json?

Does serde not consider [] to be valid json?
I am playing with warp and reqwest and I just tried to run

let mut resp = client.get("https://localhost:3030/todos/")
println!("{:#?}", resp.text()?);
let resp = resp.json()?;

which gave me

Error: Error(Json(Error("EOF while parsing a value", line: 1, column: 0)))

Shouldn’t that work?

resp.text() reads the entire body off the network - it’s not there any more when you call resp.json().


Okay, that may be true but I tried it without the extra printing of the text first and it failed with the same error.

No, it didn’t. I’m a liar.

The error before was:

Error: Error(Json(Error("invalid type: sequence, expected unit", line: 1, column: 1)))

Sorry, didn’t notice the change.

What type are you asking resp.json() to return to you?

I didn’t specify it.

let resp = client.get("https://localhost:3030/todos/")

println!("{:#?}", resp);

Good idea. Apparently, it works with resp: Vec<String>.

So, apparently it cannot correctly infer the type and then decides the type should be unit and then complains because the JSON it parses doesn’t match that type.
Ouch. :poop: