An HTTP request as a number of header lines, which include the 'GET' line you show above. There are also other header lines following that.
That header is terminated by a blank line which might then be be followed by a 'body'. It is the body where you would put the JSON formatted data you want to send from browser to server.
GET requests do not have a body. You will need to use a POST request.
You just have to read all of the request the browser is sending, not just the single GET/POST or whatever request line. That includes reading the headers then continue reading more for the body.
As an experiment you could read everything that comes from the request stream until the connection is closed by the browser and print it all out. Then you will see exactly what the browser is sending and and what you have to parse out of it.
You should find headers that indicate the type of the content as JSON and tell how long it is in bytes.
This is an interesting learning exercise but it can be a lot of fiddly parsing. Ultimately you will want to use ready made modules to do that: http::request - Rust