jsmn is only one .h and one .c file, jannson is more.
jsmn only parses the JSON into tokens, you handle all the rest.
jannson provides its own hashmap etc., jsmn doesn't.
I've just used jsmn for a current project of mine where I've already had implemented e.g. a custom hashmap, and I didn't want to link two into my code. So the choice for the lean (if not to say "minimally") jsmn came naturally. And I don't regret it :)