By placing this
var bookingitem = {};
outside of the "each" loop function (in fact any functions), it becomes a global object, the result of which is that the "each" loop always overwrites the properties of this same object.
You should put it inside the each function like this:
$("[id*=gvBookingDt] tr").each(function () {
var bookingitem = {};
so that a new local object is created on each iteration.