While the terms "good" and "bad" are subjective, and each character displays positive and negative qualities, this is a relatively straightforward overview categorizing each of the main characters as either "good" or "bad."
Shylock (Bad): He is portrayed as greedy and malicious. Shylock is a Jew, and a moneylender who lends Antonio money under the condition that he take a pound of his flesh if the bond is forfeited. While Shakespeare creates sympathy for Shylock by illustrating how he is marginalized, ridiculed, and discriminated, he is still depicted as the primary villain throughout the play.
Antonio (Good): His generosity and love for Bassanio are evident throughout the play, and Antonio is depicted as a loyal, compassionate friend.
Bassanio (Good): He is portrayed as a genuine friend and passionate lover throughout the play. Bassanio is willing to travel across seas to find love and returns quickly to Venice once he learns of Antonio's dire circumstances.
Portia (Good): She is depicted as the play's heroine. Portia is an intelligent, fair woman, who obeys her father's wish by agreeing to marry the man that picks the right casket.
Nerissa and Gratiano (Good): Both characters are portrayed as loyal friends, who have a capacity for love and compassion.
Lorenzo and Jessica (Good): Despite their dishonesty throughout the play, both characters are portrayed as caring individuals. Lorenzo is willing to go to great lengths to be with Jessica, and she is willing to abandon her oppressive father's home to be with Lorenzo.