Problem with MQTT - How to configure the item?

I am sure there is some Java JSON library that you can use for this, but I have never done this, so I am afraid I cannot help on this account.

My suggestion for capturing the complete JSON message in a string was only because you asked if it was possible - and as a way to verify that you actually receive the JSON message in openHAB, i.e. a debugging measure.

This is not neccessarily the way I would do this.

Given the following JSON message (from your original post):

{"type":"access","time":1542734830,"isKnown":"true","access":"Always","username":"schwarz","uid":"12361353"}

I would suggest to try to map this directly to separate items using JSONPATH (as proposed by @psyciknz above) like this:

String      rfid1_type      { mqtt="<[mosquitto:esprfid:state:JSONPATH($.type)]" }
DateTime    rfid1_time      { mqtt="<[mosquitto:esprfid:state:JSONPATH($.time)]" }
String      rfid1_isknown   { mqtt="<[mosquitto:esprfid:state:JSONPATH($.isKnown)]" }
String      rfid1_access    { mqtt="<[mosquitto:esprfid:state:JSONPATH($.access)]" }
String      rfid1_username  { mqtt="<[mosquitto:esprfid:state:JSONPATH($.username)]" }
Number      rfid1_uid       { mqtt="<[mosquitto:esprfid:state:JSONPATH($.uid)]" }

This really should work (with the disclaimer that I may have made a typo in the above). If not let’s try to find out why…