{"id":31894,"date":"2024-11-01T09:03:56","date_gmt":"2024-11-01T09:03:56","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=31894"},"modified":"2024-11-01T11:34:15","modified_gmt":"2024-11-01T11:34:15","slug":"basic-unity-course-save-and-load-functionality-data-loading","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/31894\/","title":{"rendered":"Basic Unity Course: Save and Load Functionality, Data Loading"},"content":{"rendered":"<div class=\"post\">\n<p>Storing and retrieving user data in game development is a very important aspect.<br \/>\n    In this tutorial, we will learn in detail about how to save and load data in Unity.<br \/>\n    There are difficult parts, but if you follow step by step, you will surely succeed, so don&#8217;t worry!<\/p>\n<h2>Table of Contents<\/h2>\n<ol>\n<li><a href=\"#section1\">1. The Necessity of Data Storage<\/a><\/li>\n<li><a href=\"#section2\">2. How to Save Data in Unity<\/a><\/li>\n<li><a href=\"#section3\">3. Saving and Loading Data with JSON<\/a><\/li>\n<li><a href=\"#section4\">4. Simple Saving and Loading with PlayerPrefs<\/a><\/li>\n<li><a href=\"#section5\">5. Complex Data Storage Using XML or BinaryFormatter<\/a><\/li>\n<li><a href=\"#section6\">6. Practice: Implementing Data Saving and Loading<\/a><\/li>\n<li><a href=\"#section7\">7. Conclusion<\/a><\/li>\n<\/ol>\n<h2 id=\"section1\">1. The Necessity of Data Storage<\/h2>\n<p>It is essential to store the player&#8217;s progress or settings while playing the game.<br \/>\n    If data is not saved, players would have to start over every time they begin the game,<br \/>\n    which degrades the gaming experience. For example, by saving information such as level completion, scores, and item possession,<br \/>\n    players can maintain their progress. Here, data storage can be primarily divided into two main purposes:<\/p>\n<ul>\n<li>Saving the player&#8217;s game progress<\/li>\n<li>Saving game settings and options<\/li>\n<\/ul>\n<h2 id=\"section2\">2. How to Save Data in Unity<\/h2>\n<p>In Unity, data can be saved in various ways. We mainly use the following methods:<\/p>\n<ul>\n<li><strong>PlayerPrefs<\/strong>: A way to save data with simple key-value pairs.<\/li>\n<li><strong>JSON File<\/strong>: A useful method for saving structured data.<\/li>\n<li><strong>XML File<\/strong>: A method for clearly defining and saving the structure of data.<\/li>\n<li><strong>BinaryFormatter<\/strong>: A method to save and load objects through serialization.<\/li>\n<\/ul>\n<h2 id=\"section3\">3. Saving and Loading Data with JSON<\/h2>\n<p>JSON is a widely used format for structurally storing data. By learning how to use JSON in Unity,<br \/>\n    you can easily save and load complex data structures. Here&#8217;s how to implement saving and loading data using JSON.<\/p>\n<h3>3.1 JSON Data Class<\/h3>\n<p>You first need to create a class that defines the data to be saved. For example, you can create a class to store player information like this:<\/p>\n<pre><code>\n    [System.Serializable]\n    public class PlayerData {\n        public string playerName;\n        public int playerScore;\n        public float[] playerPosition;\n\n        public PlayerData(string name, int score, Vector3 position) {\n            playerName = name;\n            playerScore = score;\n            playerPosition = new float[] { position.x, position.y, position.z };\n        }\n    }\n    <\/code><\/pre>\n<h3>3.2 Saving JSON Data<\/h3>\n<p>You can convert the data you defined above into JSON format and save it to a file.<br \/>\n    Here is an example of saving JSON data:<\/p>\n<pre><code>\n    public void SaveData(PlayerData data) {\n        string json = JsonUtility.ToJson(data);\n        System.IO.File.WriteAllText(Application.persistentDataPath + \"\/playerdata.json\", json);\n    }\n    <\/code><\/pre>\n<h3>3.3 Loading JSON Data<\/h3>\n<p>The method for loading the saved JSON data is as follows:<\/p>\n<pre><code>\n    public PlayerData LoadData() {\n        string path = Application.persistentDataPath + \"\/playerdata.json\";\n        if (System.IO.File.Exists(path)) {\n            string json = System.IO.File.ReadAllText(path);\n            return JsonUtility.FromJson&lt;PlayerData&gt;(json);\n        }\n        return null;\n    }\n    <\/code><\/pre>\n<h2 id=\"section4\">4. Simple Saving and Loading with PlayerPrefs<\/h2>\n<p>PlayerPrefs is the easiest way to save simple data.<br \/>\n    It is primarily used for saving strings, integers, and floating-point data.<br \/>\n    It is very straightforward to use, and you can save and load data in the following way.<\/p>\n<h3>4.1 Saving Data to PlayerPrefs<\/h3>\n<pre><code>\n    public void SaveScore(int score) {\n        PlayerPrefs.SetInt(\"PlayerScore\", score);\n        PlayerPrefs.Save();\n    }\n    <\/code><\/pre>\n<h3>4.2 Loading Data from PlayerPrefs<\/h3>\n<pre><code>\n    public int LoadScore() {\n        return PlayerPrefs.GetInt(\"PlayerScore\", 0); \/\/ Default value is 0\n    }\n    <\/code><\/pre>\n<h2 id=\"section5\">5. Complex Data Storage Using XML or BinaryFormatter<\/h2>\n<p>For complex data structures, data can be stored using XML or BinaryFormatter.<br \/>\n    Both methods can save data in object form, with BinaryFormatter being more concise and performant, but<br \/>\n    XML is human-readable, making it advantageous for data verification.<\/p>\n<h3>5.1 Saving XML Data<\/h3>\n<pre><code>\n    using System.Xml.Serialization;\n\n    public void SaveToXml(PlayerData data) {\n        XmlSerializer serializer = new XmlSerializer(typeof(PlayerData));\n        using (FileStream stream = new FileStream(Application.persistentDataPath + \"\/playerdata.xml\", FileMode.Create)) {\n            serializer.Serialize(stream, data);\n        }\n    }\n    <\/code><\/pre>\n<h3>5.2 Loading XML Data<\/h3>\n<pre><code>\n    public PlayerData LoadFromXml() {\n        XmlSerializer serializer = new XmlSerializer(typeof(PlayerData));\n        using (FileStream stream = new FileStream(Application.persistentDataPath + \"\/playerdata.xml\", FileMode.Open)) {\n            return (PlayerData)serializer.Deserialize(stream);\n        }\n    }\n    <\/code><\/pre>\n<h3>5.3 Saving BinaryFormatter Data<\/h3>\n<pre><code>\n    using System.Runtime.Serialization.Formatters.Binary;\n\n    public void SaveToBinary(PlayerData data) {\n        BinaryFormatter formatter = new BinaryFormatter();\n        using (FileStream stream = new FileStream(Application.persistentDataPath + \"\/playerdata.dat\", FileMode.Create)) {\n            formatter.Serialize(stream, data);\n        }\n    }\n    <\/code><\/pre>\n<h3>5.4 Loading BinaryFormatter Data<\/h3>\n<pre><code>\n    public PlayerData LoadFromBinary() {\n        BinaryFormatter formatter = new BinaryFormatter();\n        using (FileStream stream = new FileStream(Application.persistentDataPath + \"\/playerdata.dat\", FileMode.Open)) {\n            return (PlayerData)formatter.Deserialize(stream);\n        }\n    }\n    <\/code><\/pre>\n<h2 id=\"section6\">6. Practice: Implementing Data Saving and Loading<\/h2>\n<p>Let&#8217;s proceed with a simple practice based on what we have learned so far.<br \/>\n    We will implement a feature that allows us to input the player&#8217;s name and score, save them, and later load them.<\/p>\n<h3>6.1 Creating the UI<\/h3>\n<p>Set up a UI in the Unity Editor to receive input.<br \/>\n    Place InputField and Button, and configure it to receive player names and scores.<\/p>\n<h3>6.2 Writing the Script<\/h3>\n<p>Now, write a script to handle user input and implement the saving and loading functionality.<br \/>\n    Test the implemented features to ensure they work correctly.<\/p>\n<h2 id=\"section7\">7. Conclusion<\/h2>\n<p>Today we learned about various methods of saving and loading data in Unity.<br \/>\n    We learned to save simple data using PlayerPrefs, and how to handle complex data using JSON or XML.<br \/>\n    I hope these features will be very helpful in your game development.<br \/>\n    Always practice and find your own way to save data!<\/p>\n<p>Thank you for reading! Happy gaming!<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Storing and retrieving user data in game development is a very important aspect. In this tutorial, we will learn in detail about how to save and load data in Unity. There are difficult parts, but if you follow step by step, you will surely succeed, so don&#8217;t worry! Table of Contents 1. The Necessity of &hellip; <a href=\"https:\/\/atmokpo.com\/w\/31894\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Basic Unity Course: Save and Load Functionality, Data Loading&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[135],"tags":[],"class_list":["post-31894","post","type-post","status-publish","format-standard","hentry","category-unity-basic"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Basic Unity Course: Save and Load Functionality, Data Loading - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/31894\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Basic Unity Course: Save and Load Functionality, Data Loading - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Storing and retrieving user data in game development is a very important aspect. In this tutorial, we will learn in detail about how to save and load data in Unity. There are difficult parts, but if you follow step by step, you will surely succeed, so don&#8217;t worry! Table of Contents 1. The Necessity of &hellip; \ub354 \ubcf4\uae30 &quot;Basic Unity Course: Save and Load Functionality, Data Loading&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/31894\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:03:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:34:15+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/31894\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/31894\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Basic Unity Course: Save and Load Functionality, Data Loading\",\"datePublished\":\"2024-11-01T09:03:56+00:00\",\"dateModified\":\"2024-11-01T11:34:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/31894\/\"},\"wordCount\":623,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Unity Basic\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/31894\/\",\"url\":\"https:\/\/atmokpo.com\/w\/31894\/\",\"name\":\"Basic Unity Course: Save and Load Functionality, Data Loading - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:03:56+00:00\",\"dateModified\":\"2024-11-01T11:34:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/31894\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/31894\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/31894\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Basic Unity Course: Save and Load Functionality, Data Loading\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Basic Unity Course: Save and Load Functionality, Data Loading - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","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:\/\/atmokpo.com\/w\/31894\/","og_locale":"ko_KR","og_type":"article","og_title":"Basic Unity Course: Save and Load Functionality, Data Loading - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Storing and retrieving user data in game development is a very important aspect. In this tutorial, we will learn in detail about how to save and load data in Unity. There are difficult parts, but if you follow step by step, you will surely succeed, so don&#8217;t worry! Table of Contents 1. The Necessity of &hellip; \ub354 \ubcf4\uae30 \"Basic Unity Course: Save and Load Functionality, Data Loading\"","og_url":"https:\/\/atmokpo.com\/w\/31894\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:03:56+00:00","article_modified_time":"2024-11-01T11:34:15+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"4\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/31894\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/31894\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Basic Unity Course: Save and Load Functionality, Data Loading","datePublished":"2024-11-01T09:03:56+00:00","dateModified":"2024-11-01T11:34:15+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/31894\/"},"wordCount":623,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Unity Basic"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/31894\/","url":"https:\/\/atmokpo.com\/w\/31894\/","name":"Basic Unity Course: Save and Load Functionality, Data Loading - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:03:56+00:00","dateModified":"2024-11-01T11:34:15+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/31894\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/31894\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/31894\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Basic Unity Course: Save and Load Functionality, Data Loading"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/31894","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=31894"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/31894\/revisions"}],"predecessor-version":[{"id":31895,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/31894\/revisions\/31895"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=31894"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=31894"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=31894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}