Solved my problem. Sorry for the newbie-ness.
Once content is set to json, there will be no post data. The JSON reply is actually in the context.request.inputStream.
You can get back the data by converting it to an object through the following:
Dim jss As New JavaScriptSerializer
Context.Request.InputStream.Position = 0
Dim sr As New StreamReader(Context.Request.InputStream)
Dim jsonString As String = sr.ReadToEnd()
Dim jsObj As Object = jss.DeserializeObject(jsonString)
You will be able to get the data posted by doing jsObj("page"), jsObj("_search") etc...
Hope this helps someone.
Thanks.