Jeroen I encourage you to look closely at JSON-LD, because this is precisely the use case it was designed for.
Depending on how you choose to encode your data in JSON-LD, it need not offer any additional complexities to a consumer of the data. For instance, you can supply a link to a JSON-LD Context in an HTTP Link Header.
The big advantages of JSON-LD over other JSON-based representations of linked data come from the use of the JSON-LD "Context". By associating the JSON object with a Context, you can map from the strings used as JSON names (such as "sister city") to full URIs such as (I'm guessing) <
https://www.wikidata.org/wiki/Property:P123>. Data consumers who wish to treat the JSON object simply as JSON can use the strings as keys, but JSON-LD aware consumers can parse the data as RDF if they wish. Even developers who don't use the JSON-LD features at runtime can at least use them to identify the meanings of those strings when they are writing their Javascript code.