Why bother? Instead of creating a JSON string just to parse it back to an object, just build the object instead:
var controlNameAndValues = [];
$("input[type='text'][id]").each(function () {
controlNameAndValues.push({
controlName: this.id,
controlValue: $(this).val()
});
});