That is because you call and get the value of the input fields not their text. Text method is to get the visual representation of the HTML markup. Inputs don't provide anything like that, they just provide you with a value provided by the user.
This would work for you,
var jsonid = $("#<%= TextBox1.ClientID %>").val();
But since you JSON seems to be asking for an
id, why not simply put the value of that variable there instead of getting text or value?
http://api.jquery.com/val/[
^]