JSON-LD should be used. Over the last few years, JSON-LD has become the most preferred structured data. Why? JSON-LD is well-implemented. It can be embedded in "script" tags in the head of a document (moving out of HTML body), separated from the data it describes. This makes JSON-LD a format that can be templated, easily implemented and a great option for adding, deleting, or updating purposes.
Other formats like Microdata or RDFa are neither that flexible nor easy to use options for adding, deleting, or updating purposes. RDFa are inline markups applied to HTML documents and define attributes that are added to the HTML.
Above all, search engines prefer JSON-LD and thus JSON-LDs are more picked up and displayed in the SERPs. Here is what Google has to say - "Google recommends using JSON-LD for structured data whenever possible". Period.