{"id":14658,"date":"2024-03-15T09:42:07","date_gmt":"2024-03-15T09:42:07","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/"},"modified":"2025-08-06T11:41:36","modified_gmt":"2025-08-06T11:41:36","slug":"how-to-read-and-write-ini-configuration-files-in-c","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/","title":{"rendered":"C++ INI Parser: Read\/Write Config Files"},"content":{"rendered":"<p>In C++, you can read and write ini configuration files using the following methods:<\/p>\n<ol>\n<li>file stream<\/li>\n<li>&#8211; <string><\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;fstream&gt;<\/span><\/span>\r\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;string&gt;<\/span><\/span>\r\n<\/code><\/pre>\n<ol>\n<li>Read the ini configuration file:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-function\">std::string <span class=\"hljs-title\">GetValueFromIni<\/span><span class=\"hljs-params\">(<span class=\"hljs-type\">const<\/span> std::string&amp; filePath, <span class=\"hljs-type\">const<\/span> std::string&amp; section, <span class=\"hljs-type\">const<\/span> std::string&amp; key)<\/span> <\/span>{\r\n    <span class=\"hljs-function\">std::ifstream <span class=\"hljs-title\">file<\/span><span class=\"hljs-params\">(filePath)<\/span><\/span>;\r\n    std::string line;\r\n    std::string value;\r\n    <span class=\"hljs-type\">bool<\/span> sectionFound = <span class=\"hljs-literal\">false<\/span>;\r\n\r\n    <span class=\"hljs-keyword\">while<\/span> (std::<span class=\"hljs-built_in\">getline<\/span>(file, line)) {\r\n        <span class=\"hljs-comment\">\/\/ \u5982\u679c\u627e\u5230\u4e86\u5bf9\u5e94\u7684section\uff0c\u5219\u5c06sectionFound\u6807\u8bb0\u4e3atrue<\/span>\r\n        <span class=\"hljs-keyword\">if<\/span> (line.<span class=\"hljs-built_in\">find<\/span>(<span class=\"hljs-string\">\"[\"<\/span> + section + <span class=\"hljs-string\">\"]\"<\/span>) != std::string::npos) {\r\n            sectionFound = <span class=\"hljs-literal\">true<\/span>;\r\n            <span class=\"hljs-keyword\">continue<\/span>;\r\n        }\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u5982\u679c\u5f53\u524d\u884c\u5305\u542bkey\uff0c\u5219\u83b7\u53d6\u5bf9\u5e94\u7684value<\/span>\r\n        <span class=\"hljs-keyword\">if<\/span> (sectionFound &amp;&amp; line.<span class=\"hljs-built_in\">find<\/span>(key) != std::string::npos) {\r\n            <span class=\"hljs-comment\">\/\/ \u4ece\u7b49\u53f7\u4e4b\u540e\u83b7\u53d6value<\/span>\r\n            value = line.<span class=\"hljs-built_in\">substr<\/span>(line.<span class=\"hljs-built_in\">find<\/span>(<span class=\"hljs-string\">'='<\/span>) + <span class=\"hljs-number\">1<\/span>);\r\n            <span class=\"hljs-comment\">\/\/ \u53bb\u6389value\u4e2d\u7684\u7a7a\u683c<\/span>\r\n            value.<span class=\"hljs-built_in\">erase<\/span>(value.<span class=\"hljs-built_in\">find_last_not_of<\/span>(<span class=\"hljs-string\">\" \\n\\r\\t\"<\/span>) + <span class=\"hljs-number\">1<\/span>);\r\n            <span class=\"hljs-keyword\">break<\/span>;\r\n        }\r\n    }\r\n    file.<span class=\"hljs-built_in\">close<\/span>();\r\n    <span class=\"hljs-keyword\">return<\/span> value;\r\n}\r\n<\/code><\/pre>\n<ol>\n<li>Write to an INI configuration file:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-function\"><span class=\"hljs-type\">void<\/span> <span class=\"hljs-title\">SetValueToIni<\/span><span class=\"hljs-params\">(<span class=\"hljs-type\">const<\/span> std::string&amp; filePath, <span class=\"hljs-type\">const<\/span> std::string&amp; section, <span class=\"hljs-type\">const<\/span> std::string&amp; key, <span class=\"hljs-type\">const<\/span> std::string&amp; value)<\/span> <\/span>{\r\n    <span class=\"hljs-function\">std::ifstream <span class=\"hljs-title\">file<\/span><span class=\"hljs-params\">(filePath)<\/span><\/span>;\r\n    std::string line;\r\n    std::string content;\r\n    <span class=\"hljs-type\">bool<\/span> sectionFound = <span class=\"hljs-literal\">false<\/span>;\r\n    <span class=\"hljs-type\">bool<\/span> keyFound = <span class=\"hljs-literal\">false<\/span>;\r\n\r\n    <span class=\"hljs-keyword\">while<\/span> (std::<span class=\"hljs-built_in\">getline<\/span>(file, line)) {\r\n        <span class=\"hljs-comment\">\/\/ \u5982\u679c\u627e\u5230\u4e86\u5bf9\u5e94\u7684section\uff0c\u5219\u5c06sectionFound\u6807\u8bb0\u4e3atrue<\/span>\r\n        <span class=\"hljs-keyword\">if<\/span> (line.<span class=\"hljs-built_in\">find<\/span>(<span class=\"hljs-string\">\"[\"<\/span> + section + <span class=\"hljs-string\">\"]\"<\/span>) != std::string::npos) {\r\n            sectionFound = <span class=\"hljs-literal\">true<\/span>;\r\n        }\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u5982\u679c\u5728\u5bf9\u5e94\u7684section\u4e2d\u627e\u5230\u4e86key\uff0c\u5219\u66ff\u6362\u5f53\u524d\u884c\u4e3a\u65b0\u7684value<\/span>\r\n        <span class=\"hljs-keyword\">if<\/span> (sectionFound &amp;&amp; line.<span class=\"hljs-built_in\">find<\/span>(key) != std::string::npos) {\r\n            line = key + <span class=\"hljs-string\">\"=\"<\/span> + value;\r\n            keyFound = <span class=\"hljs-literal\">true<\/span>;\r\n        }\r\n\r\n        content += line + <span class=\"hljs-string\">\"\\n\"<\/span>;\r\n    }\r\n    file.<span class=\"hljs-built_in\">close<\/span>();\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u5982\u679csection\u6216key\u4e0d\u5b58\u5728\uff0c\u5219\u5728\u6587\u4ef6\u672b\u5c3e\u6dfb\u52a0\u65b0\u7684section\u548ckey-value\u5bf9<\/span>\r\n    <span class=\"hljs-keyword\">if<\/span> (!sectionFound) {\r\n        content += <span class=\"hljs-string\">\"[\"<\/span> + section + <span class=\"hljs-string\">\"]\\n\"<\/span>;\r\n        content += key + <span class=\"hljs-string\">\"=\"<\/span> + value + <span class=\"hljs-string\">\"\\n\"<\/span>;\r\n    } <span class=\"hljs-keyword\">else<\/span> <span class=\"hljs-keyword\">if<\/span> (!keyFound) {\r\n        content += key + <span class=\"hljs-string\">\"=\"<\/span> + value + <span class=\"hljs-string\">\"\\n\"<\/span>;\r\n    }\r\n\r\n    <span class=\"hljs-function\">std::ofstream <span class=\"hljs-title\">outFile<\/span><span class=\"hljs-params\">(filePath)<\/span><\/span>;\r\n    outFile &lt;&lt; content;\r\n    outFile.<span class=\"hljs-built_in\">close<\/span>();\r\n}\r\n<\/code><\/pre>\n<p>Here is a simple example of reading and writing an INI configuration file. Feel free to modify and expand it according to your needs. Make sure you have the necessary permission to read and write files and provide the correct file path.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C++, you can read and write ini configuration files using the following methods: file stream &#8211; #include &lt;fstream&gt; #include &lt;string&gt; Read the ini configuration file: std::string GetValueFromIni(const std::string&amp; filePath, const std::string&amp; section, const std::string&amp; key) { std::ifstream file(filePath); std::string line; std::string value; bool sectionFound = false; while (std::getline(file, line)) { \/\/ \u5982\u679c\u627e\u5230\u4e86\u5bf9\u5e94\u7684section\uff0c\u5219\u5c06sectionFound\u6807\u8bb0\u4e3atrue if (line.find(&#8220;[&#8221; [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[19798,381,5576,380,1134],"class_list":["post-14658","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-c-parser","tag-c-programming","tag-configuration-files","tag-file-i-o","tag-ini-files"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C++ INI Parser: Read\/Write Config Files - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to parse and create INI configuration files in C++ with practical code examples for efficient file handling.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C++ INI Parser: Read\/Write Config Files\" \/>\n<meta property=\"og:description\" content=\"Learn how to parse and create INI configuration files in C++ with practical code examples for efficient file handling.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T09:42:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-06T11:41:36+00:00\" \/>\n<meta name=\"author\" content=\"Jackson Davis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jackson Davis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/\"},\"author\":{\"name\":\"Jackson Davis\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\"},\"headline\":\"C++ INI Parser: Read\/Write Config Files\",\"datePublished\":\"2024-03-15T09:42:07+00:00\",\"dateModified\":\"2025-08-06T11:41:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/\"},\"wordCount\":77,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"C++ parser\",\"C++ Programming\",\"Configuration Files\",\"File I\/O\",\"INI files\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/\",\"name\":\"C++ INI Parser: Read\/Write Config Files - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T09:42:07+00:00\",\"dateModified\":\"2025-08-06T11:41:36+00:00\",\"description\":\"Learn how to parse and create INI configuration files in C++ with practical code examples for efficient file handling.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C++ INI Parser: Read\/Write Config Files\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\",\"name\":\"Jackson Davis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"caption\":\"Jackson Davis\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C++ INI Parser: Read\/Write Config Files - Blog - Silicon Cloud","description":"Learn how to parse and create INI configuration files in C++ with practical code examples for efficient file handling.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/","og_locale":"en_US","og_type":"article","og_title":"C++ INI Parser: Read\/Write Config Files","og_description":"Learn how to parse and create INI configuration files in C++ with practical code examples for efficient file handling.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T09:42:07+00:00","article_modified_time":"2025-08-06T11:41:36+00:00","author":"Jackson Davis","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Jackson Davis","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/"},"author":{"name":"Jackson Davis","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350"},"headline":"C++ INI Parser: Read\/Write Config Files","datePublished":"2024-03-15T09:42:07+00:00","dateModified":"2025-08-06T11:41:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/"},"wordCount":77,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["C++ parser","C++ Programming","Configuration Files","File I\/O","INI files"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/","name":"C++ INI Parser: Read\/Write Config Files - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T09:42:07+00:00","dateModified":"2025-08-06T11:41:36+00:00","description":"Learn how to parse and create INI configuration files in C++ with practical code examples for efficient file handling.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-read-and-write-ini-configuration-files-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"C++ INI Parser: Read\/Write Config Files"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350","name":"Jackson Davis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","caption":"Jackson Davis"},"url":"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=14658"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14658\/revisions"}],"predecessor-version":[{"id":158696,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14658\/revisions\/158696"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=14658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=14658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=14658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}