I do not think James deserved Em (Spoilers).
I love this movie, and it is one of my favorite movies, but I really think that James talked way too much (he was such a big mouth).
He talked to all his friends at the park about the personal times that he has with Em, and I really do not think it was right of his to do that.
She was cheating on him (in a way), but I think what he did to her was much worse.
I would not have been blabbing my mouth off about everything I did with her (if I was him), and in the end, he really did not seem all that apologetic to her (as he really should have been, to have any chance of deserving her, and her forgiveness).
I just think the movie would have been so much better if he had not been such a big mouth.
There really was no need for him to brag to everyone about his personal experiences with her, and also cheating on her with Lisa P, and telling Lisa P what he knew about Em and Connell (that was pretty messed up I thought).
His character just kind of annoyed me, and I do not think he deserved her.