Json data is simply a text, you could store in any
NVARCHAR(MAX)
field. But the question is what do you intend to do with it? If you don't want to "query" it, this is just ok.
But if you want to look inside this data during a query operation, than you have to consider several alternatives:
1) You can use some custom functions to deal with the data stored there. This is a good approach:
https://www.simple-talk.com/sql/t-sql-programming/consuming-json-strings-in-sql-server/[
^]
2) You could translate json to xml (see above link), and than use sql server xml features to query it (
http://msdn.microsoft.com/en-us/library/ms189075.aspx[
^]).
3) You could create json or bson data type as managed data type, and install this feature on sql server instance. Well this would be the most elegant one. If you implement it, please, share it with us here!
Just a note: if you decide to switch to PostgreSQL, there you already have this data type:
http://www.postgresql.org/docs/devel/static/datatype-json.html[
^]
Note 2: If you have to deal more with structured data, rather than relational one, you might consider switching to a
NoSQL Document Store[
^] implementation, where json/bson is the default approach.