{"id":4091,"date":"2015-11-15T23:38:51","date_gmt":"2015-11-15T18:08:51","guid":{"rendered":"http:\/\/sqlhints.com\/?p=4091"},"modified":"2015-12-23T07:40:59","modified_gmt":"2015-12-23T02:10:59","slug":"json_value-function-in-sql-server-2016","status":"publish","type":"post","link":"https:\/\/sqlhints.com\/2015\/11\/15\/json_value-function-in-sql-server-2016\/","title":{"rendered":"JSON_VALUE Function in Sql Server 2016"},"content":{"rendered":"<p style=\"text-align: justify;\"><strong>JSON_VALUE<\/strong> is one of the new JSON scalar function introduced in Sql Server 2016. This function returns the scalar value from the input JSON text from the specified JSON path location.<\/p>\n<p><strong>SYNTAX:<\/strong> <\/p>\n<pre class=\"brush: sql; gutter: false\">JSON_VALUE ( json_string,  json_path )<\/pre>\n<p><strong>WHERE:<\/strong> <\/p>\n<p style=\"text-align: justify;\"><strong>json_string <\/strong>is the JSON string from which the scalar value will be extracted.<\/p>\n<p style=\"text-align: justify;\"><strong>json_path <\/strong>is the location of the scalar value in the json_string. Within json_path we can specify the path mode, it can be lax or strict. Lax is the default path mode, if json_path is invalid (i.e. it is not present in the json_string) then it returns null, but if path mode is strict it will raise an error.<\/p>\n<p><strong>[ALSO READ]:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/10\/25\/json-in-sql-server-2016\/\" target=\"_blank\">Native JSON Support in Sql Server 2016<\/a><\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/11\/15\/for-json-clause-in-sql-server-2016\/\" target=\"_blank\">FOR JSON Clause in Sql Server 2016<\/a><\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/11\/22\/openjson-function-in-sql-server-2016\/\" target=\"_blank\">OPENJSON Function in Sql Server 2016<\/a><\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/11\/15\/isjson-function-in-sql-server-2016\/\" target=\"_blank\">ISJSON Function in Sql Server 2016<\/a><\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/11\/15\/json_query-function-in-sql-server-2016\/\" target=\"_blank\">JSON_QUERY Function in Sql Server 2016<\/a><\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/11\/15\/lax-and-strict-json-path-modes-in-sql-server-2016\/\" target=\"_blank\">lax and strict JSON Path modes in Sql Server 2016<\/a><\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/11\/28\/indexing-strategy-for-json-value-in-sql-server-2016\/\" target=\"_blank\">Indexing Strategy for JSON Value in Sql Server 2016<\/a><\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Let us understand JSON_VALUE function with extensive list of examples:<\/p>\n<h3>Basic JSON_VALUE function examples<\/h3>\n<p style=\"text-align: justify;\"><strong>Example 1:<\/strong> Basic example where we are trying to get FirstName from a JSON string<\/p>\n<pre class=\"brush: sql; gutter: false\">\r\nSELECT \r\n JSON_VALUE(&#039;{&quot;FirstName&quot;:&quot;Basavaraj&quot;,&quot;Last Name&quot;:&quot;Biradar&quot;}&#039;,\r\n\t\t\t\t\t&#039;$.FirstName&#039;) AS &#039;First Name&#039;<\/pre>\n<p><strong>RESULT:<\/strong><br \/>\n<a href=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Example-1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Example-1.jpg\" alt=\"JSON_VALUE Sql Example 1\" width=\"550\" height=\"160\" class=\"alignnone size-full wp-image-4094\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Here in the json_path the $ symbol implies the json_string and $.FirstName means FirstName property in the json_string at the root level.<\/p>\n<p style=\"text-align: justify;\"><strong>Example 2:<\/strong> Getting FirstName JSON property value which is not at the root level<\/p>\n<pre class=\"brush: sql; gutter: false\">\r\nSELECT JSON_VALUE(\r\n &#039;{&quot;Name&quot;:{&quot;FirstName&quot;:&quot;Basavaraj&quot;,&quot;Last Name&quot;:&quot;Biradar&quot;}}&#039;,\r\n\t\t\t\t\t&#039;$.Name.FirstName&#039;) AS &#039;First Name&#039;<\/pre>\n<p><strong>RESULT:<\/strong><br \/>\n<a href=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Example-2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Example-2.jpg\" alt=\"JSON_VALUE Sql Example 2\" width=\"550\" height=\"185\" class=\"alignnone size-full wp-image-4095\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Here in this example FirstName property is not at the root level instead it is in the Name object, because of that we need to specify the path as &#8216;$.Name.FirstName&#8217; instead of just &#8216;$.FirstName&#8217; like the example 1.<\/p>\n<p style=\"text-align: justify;\"><strong>Example 3:<\/strong> Repeat the example 2, but specify the path as in example one. Basically, the idea of this example is to check whether specifying the path like $.PropertyName searches the PropertyName anywhere in the JSON string or just at the root level<\/p>\n<pre class=\"brush: sql; gutter: false\">SELECT JSON_VALUE(\r\n  &#039;{&quot;Name&quot;:{&quot;FirstName&quot;:&quot;Basavaraj&quot;,&quot;Last Name&quot;:&quot;Biradar&quot;}}&#039;,\r\n\t\t\t\t\t&#039;$.FirstName&#039;) AS &#039;First Name&#039;<\/pre>\n<p><strong>RESULT:<\/strong><br \/>\n<a href=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Example-3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Example-3.jpg\" alt=\"JSON_VALUE Sql Example 3\" width=\"550\" height=\"188\" class=\"alignnone size-full wp-image-4097\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">From the result it is clear that, specifying the JSON path like $.PropertyName, just tries to locate the PropertName just at the root level, in otherwords JSON path is the exact location of the string.<\/p>\n<p style=\"text-align: justify;\"><strong>Example 4:<\/strong> This example explains that the JSON path expression is case sensitive<\/p>\n<pre class=\"brush: sql; gutter: false\">\r\nSELECT JSON_VALUE(&#039;{&quot;name&quot;:&quot;Basavaraj&quot;}&#039;,&#039;$.NAME&#039;) AS Name<\/pre>\n<p><strong>RESULT:<\/strong><br \/>\n<a href=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Example-4-1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Example-4-1.jpg\" alt=\"JSON_VALUE Sql Example 4 1\" width=\"550\" height=\"143\" class=\"alignnone size-full wp-image-4098\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">From the result it is clear that the JSON path is case sensitive. Even though the JSON sting has the property name but the response returned is NULL because the property mentioned in the JSON path is in upper case where as in the JSON string it is in lower case<\/p>\n<p style=\"text-align: justify;\">Let us try the above example by specifying the JSON path in the same case as that in the JSON string<\/p>\n<pre class=\"brush: sql; gutter: false\">\r\nSELECT JSON_VALUE(&#039;{&quot;name&quot;:&quot;Basavaraj&quot;}&#039;,&#039;$.name&#039;) AS Name<\/pre>\n<p><strong>RESULT:<\/strong><br \/>\n<a href=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Example-4-2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Example-4-2.jpg\" alt=\"JSON_VALUE Sql Example 4 2\" width=\"550\" height=\"133\" class=\"alignnone size-full wp-image-4099\" \/><\/a><\/p>\n<p style=\"text-align: justify;\"><strong>Example 5:<\/strong> This example explains how to specify a JSON String property name with spaces in it in the JSON path expression<\/p>\n<p style=\"text-align: justify;\">Let us try to fetch the JSON property Last Name value, where this property name has an empty space in it:<\/p>\n<pre class=\"brush: sql; gutter: false\">SELECT JSON_VALUE(\r\n\t&#039;{&quot;Last Name&quot;:&quot;Basavaraj&quot;}&#039;,&#039;$.Last Name&#039;) AS &#039;Last Name&#039;<\/pre>\n<p><strong>RESULT:<\/strong><\/p>\n<p style=\"text-align: justify;color: red;\">\nMsg 13607, Level 16, State 4, Line 1<br \/>\nJSON path is not properly formatted. Unexpected character found at position 7.<\/P><\/p>\n<p style=\"text-align: justify;\">In case if the JSON property name has a space in it, then while specifying it in the JSON path we need to specify property name by enclosing it in the double quotes.<\/p>\n<p style=\"text-align: justify;\">Let us re-write the query and try now<\/p>\n<pre class=\"brush: sql; gutter: false\">SELECT JSON_VALUE(\r\n  &#039;{&quot;Last Name&quot;:&quot;Basavaraj&quot;}&#039;,&#039;$.&quot;Last Name&quot;&#039;) AS &#039;Last Name&#039;<\/pre>\n<p><strong>RESULT:<\/strong><br \/>\n<a href=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Example-5-2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Example-5-2.jpg\" alt=\"JSON_VALUE Sql Example 5 2\" width=\"550\" height=\"168\" class=\"alignnone size-full wp-image-4100\" \/><\/a><\/p>\n<h3>Advanced JSON_VALUE function examples<\/h3>\n<p style=\"text-align: justify;\"><strong>Example 1:<\/strong> Reading values from JSON object where one of its property is an Array (i.e. [ , ])<\/p>\n<pre class=\"brush: sql; gutter: false\">DECLARE @json_str NVARCHAR(MAX) = \r\n &#039;{&quot;Id&quot;:1,&quot;Name&quot;:&quot;Basavaraj&quot;,\r\n\t\t&quot;Hobbies&quot;:[&quot;Blogging&quot;,&quot;Cricket&quot;]}&#039;\r\nSELECT JSON_VALUE(@json_str,&#039;$.Name&#039;) Name,\r\n\tJSON_VALUE(@json_str,&#039;$.Hobbies[0]&#039;) Hobby1,\r\n\tJSON_VALUE(@json_str,&#039;$.Hobbies[1]&#039;) Hobby2<\/pre>\n<p><strong>RESULT:<\/strong><br \/>\n<a href=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Advance-Example-1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Advance-Example-1.jpg\" alt=\"JSON_VALUE Sql Advance Example 1\" width=\"550\" height=\"264\" class=\"alignnone size-full wp-image-4106\" \/><\/a><\/p>\n<p style=\"text-align: justify;\"><strong>Example 2:<\/strong> Trying to get a non-scalar value. In the below example trying to get the value of a property which is an array<\/p>\n<pre class=\"brush: sql; gutter: false\">\r\nDECLARE @json_str NVARCHAR(MAX) = \r\n &#039;{&quot;Id&quot;:1,&quot;Name&quot;:&quot;Basavaraj&quot;,\r\n\t\t&quot;Hobbies&quot;:[&quot;Blogging&quot;,&quot;Cricket&quot;]}&#039;\r\nSELECT JSON_VALUE(@json_str,&#039;$.Hobbies&#039;) Hobbies<\/pre>\n<p><strong>RESULT:<\/strong><br \/>\n<a href=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Advance-Example-2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Advance-Example-2.jpg\" alt=\"JSON_VALUE Sql Advance Example 2\" width=\"550\" height=\"212\" class=\"alignnone size-full wp-image-4105\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">From the result it is clear that if the JSON Path is pointing to a non-scalar value like an array, sub JSON object etc will return a NULL value or an error if PATH mode is strict. In this example the JSON path is pointing to an array [&#8220;Blogging&#8221;,&#8221;Cricket&#8221;] , because of this JSON_VALUE function returning a NULL value<\/p>\n<p style=\"text-align: justify;\"><strong>Example 3:<\/strong> Reading JSON property value from a JSON object where Customers property is an array of JSON object (i.e. [{},{}])<\/p>\n<pre class=\"brush: sql; gutter: false\">\r\nDECLARE @json_str NVARCHAR(MAX) = \r\n &#039;{&quot;Customers&quot;:\r\n\t[{&quot;Id&quot;:1,&quot;Name&quot;:&quot;Basavaraj&quot;,\r\n\t\t\t&quot;Address&quot;:{&quot;State&quot;:&quot;KA&quot;,&quot;Country&quot;:&quot;India&quot;}},\r\n\t {&quot;Id&quot;:2,&quot;Name&quot;:&quot;Kalpana&quot;,\r\n\t\t\t&quot;Address&quot;:{&quot;State&quot;:&quot;NY&quot;,&quot;Country&quot;:&quot;United State&quot;}}\r\n\t]\r\n }&#039;\r\n--Get first customer details\r\nSELECT \r\n JSON_VALUE(@json_str,&#039;$.Customers[0].Name&#039;) Name,\r\n JSON_VALUE(@json_str,&#039;$.Customers[0].Address.Country&#039;) Country\r\n --Get second customer details\r\nSELECT \r\n JSON_VALUE(@json_str,&#039;$.Customers[1].Name&#039;) Name,\r\n JSON_VALUE(@json_str,&#039;$.Customers[1].Address.Country&#039;) Country<\/pre>\n<p><strong>RESULT:<\/strong><br \/>\n<a href=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Advance-Example-3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Advance-Example-3.jpg\" alt=\"JSON_VALUE Sql Advance Example 3\" width=\"550\" height=\"582\" class=\"alignnone size-full wp-image-4096\" \/><\/a><\/p>\n<p style=\"text-align: justify;\"><strong>Example 4:<\/strong> A modified version of the example 3<\/p>\n<pre class=\"brush: sql; gutter: false\">\r\nDECLARE @json_str NVARCHAR(MAX) = \r\n\t&#039;{&quot;Customers&quot;:\r\n\t\t[{&quot;Customer&quot;:{&quot;Id&quot;:1,&quot;Name&quot;:&quot;Basavaraj&quot;,\r\n\t\t\t&quot;Address&quot;:{&quot;State&quot;:&quot;KA&quot;,&quot;Country&quot;:&quot;India&quot;}}},\r\n\t\t {&quot;Customer&quot;:{&quot;Id&quot;:2,&quot;Name&quot;:&quot;Kalpana&quot;,\r\n\t\t\t&quot;Address&quot;:{&quot;State&quot;:&quot;NY&quot;,&quot;Country&quot;:&quot;United State&quot;}}}\r\n\t\t]\r\n\t}&#039;\r\n--Get first customer details\r\nSELECT \r\n JSON_VALUE(@json_str,&#039;$.Customers[0].Customer.Name&#039;) Name,\r\n JSON_VALUE(@json_str,\r\n   &#039;$.Customers[0].Customer.Address.Country&#039;) Country\r\n --Get second customer details\r\nSELECT \r\n JSON_VALUE(@json_str,&#039;$.Customers[1].Customer.Name&#039;) Name,\r\n JSON_VALUE(@json_str,\r\n   &#039;$.Customers[1].Customer.Address.Country&#039;) Country\r\n<\/pre>\n<p><strong>RESULT:<\/strong><br \/>\n<a href=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Advance-Example-4.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sqlhints.com\/wp-content\/uploads\/2015\/11\/JSON_VALUE-Sql-Advance-Example-4.jpg\" alt=\"JSON_VALUE Sql Advance Example 4\" width=\"550\" height=\"592\" class=\"alignnone size-full wp-image-4104\" \/><\/a><\/p>\n<p><strong>[ALSO READ]:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/10\/25\/json-in-sql-server-2016\/\" target=\"_blank\">Native JSON Support in Sql Server 2016<\/a>\n<ul>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/11\/15\/for-json-clause-in-sql-server-2016\/\" target=\"_blank\">FOR JSON Clause in Sql Server 2016<\/a><\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/11\/22\/openjson-function-in-sql-server-2016\/\" target=\"_blank\">OPENJSON Function in Sql Server 2016<\/a><\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/11\/15\/isjson-function-in-sql-server-2016\/\" target=\"_blank\">ISJSON Function in Sql Server 2016<\/a><\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/11\/15\/json_value-function-in-sql-server-2016\/\" target=\"_blank\">JSON_VALUE Function in Sql Server 2016<\/a><\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/11\/15\/json_query-function-in-sql-server-2016\/\" target=\"_blank\">JSON_QUERY Function in Sql Server 2016<\/a><\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/11\/15\/lax-and-strict-json-path-modes-in-sql-server-2016\/\" target=\"_blank\">lax and strict JSON Path modes in Sql Server 2016<\/a><\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/11\/28\/indexing-strategy-for-json-value-in-sql-server-2016\/\" target=\"_blank\">Indexing Strategy for JSON Value in Sql Server 2016<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/11\/12\/drop-if-exists-statement-in-sql-server-2016\/\" target=\"_blank\">DROP IF EXISTS Statement in Sql Server 2016<\/a><\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/11\/29\/compare-execution-plan-in-sql-server-2016\/\" target=\"_blank\">Compare Execution Plans in Sql Server 2016<\/a><\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/12\/11\/live-query-statistics-in-sql-server-2016\/\" target=\"_blank\">Live Query Statistics in Sql Server 2016<\/a><\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/12\/12\/datediff_big-function-in-sql-server-2016\/\" target=\"_blank\">DATEDIFF_BIG Function in Sql Server 2016<\/a><\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/12\/12\/difference-between-datediff-and-datediff_big-functions-in-sql-server\/\" target=\"_blank\">Difference between DATEDIFF and DATEDIFF_BIG functions in Sql Server<\/a><\/li>\n<li><a href=\"https:\/\/sqlhints.com\/2015\/12\/15\/session_context-in-sql-server-2016\/\" target=\"_blank\">SESSION_CONTEXT in Sql Server 2016<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>JSON_VALUE is one of the new JSON scalar function introduced in Sql Server 2016. This function returns the scalar value from the input JSON text from the specified JSON path location. SYNTAX: JSON_VALUE ( json_string, json_path ) WHERE: json_string is the JSON string from which the scalar value will be extracted. json_path is the location &hellip; <a href=\"https:\/\/sqlhints.com\/2015\/11\/15\/json_value-function-in-sql-server-2016\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">JSON_VALUE Function in Sql Server 2016<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[3,830],"tags":[873,872,865,871,832,895,869,905,870,852,868,853,904,321,986,834],"class_list":["post-4091","post","type-post","status-publish","format-standard","hentry","category-sql-server","category-sql-server-2016","tag-extract-value-from-json-string-in-sql","tag-get-a-value-from-a-json-string-in-sql","tag-json","tag-json-in-sql","tag-json-in-sql-server","tag-json-in-sql-server-2016","tag-json-value","tag-json-value-in-sql-server","tag-json-value-scalar-function","tag-json_value","tag-json_value-function","tag-json_value-function-sql","tag-json_value-in-sql-server-2016","tag-sql","tag-sql-server","tag-sql-server-2016"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3xNAz-13Z","_links":{"self":[{"href":"https:\/\/sqlhints.com\/wp-json\/wp\/v2\/posts\/4091","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sqlhints.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sqlhints.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sqlhints.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sqlhints.com\/wp-json\/wp\/v2\/comments?post=4091"}],"version-history":[{"count":17,"href":"https:\/\/sqlhints.com\/wp-json\/wp\/v2\/posts\/4091\/revisions"}],"predecessor-version":[{"id":4385,"href":"https:\/\/sqlhints.com\/wp-json\/wp\/v2\/posts\/4091\/revisions\/4385"}],"wp:attachment":[{"href":"https:\/\/sqlhints.com\/wp-json\/wp\/v2\/media?parent=4091"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sqlhints.com\/wp-json\/wp\/v2\/categories?post=4091"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sqlhints.com\/wp-json\/wp\/v2\/tags?post=4091"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}