Barcode query: return json object instead of plain list