{"id":6155,"date":"2020-08-13T14:52:14","date_gmt":"2020-08-13T09:22:14","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=6155"},"modified":"2023-01-20T18:55:17","modified_gmt":"2023-01-20T13:25:17","slug":"android-offline-handling","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/android-offline-handling\/","title":{"rendered":"Android Offline Handling"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Android offline handling basically represents the local storage data handling when there is no internet connection to get the basic required information. If not handled, the screen will be out of data and result in a blank screen which ultimately affects the UI experience.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">There are two ways to handle local data :<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">NoSql\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">SQL<\/span><\/li>\n<\/ol>\n<p><b>NoSql<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Storing data in NoSql format or JSON format is one of the approaches to handle data offline. PaperDB and better use of SharedPreferences are the two ways to store data in JSON format. Since SharedPreferences only stores the primitive data types, we can convert the class object into JSON string and store them.<\/span><\/p>\n<p><b>SharedPreference <\/b><span style=\"font-weight: 400;\">:\u00a0<\/span><\/p>\n<pre class=\"lang:java decode:true \">val sharedPreferences = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE)\r\nval editor = sharedPreferences.edit()\r\neditor.putString(\"key\", \"value\")\r\neditor.putInt(\"key\", 0)\r\neditor.putBoolean(\"key\", true)\r\neditor.putFloat(\"key\", 0.0f)<\/pre>\n<p><span style=\"font-weight: 400;\"># Storing class object into shared preferences<\/span><\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:java decode:true \">val user = User(\r\n\u00a0\u00a0\u00a0name = etName.text.toString(),\r\n\u00a0\u00a0\u00a0address = etAddress.text.toString(),\r\n\u00a0\u00a0\u00a0phoneNo = etPhoneNumber.text.toString()\r\n)\r\nval userJson = Gson().toJson(user, User :: class.java)\r\neditor.putString(\"user\", userJson\u00a0 \")\r\neditor.apply()<\/pre>\n<p><span style=\"font-weight: 400;\"># Fetch Data from SharedPreference<\/span><\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:java decode:true \">sharedPreferences.getBoolean(\"key\", false)\r\nsharedPreferences.getFloat(\"key\", 0.0f)\r\nsharedPreferences.getString(\"key\", null)\r\nsharedPreferences.getInt(\"key\", 0)\r\nval userJson = sharedPreferences.getString(\"user\", null)\r\nval user = Gson().fromJson&lt;User&gt;(userJson , User::class.java)\r\n\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p><b>PaperDB<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Paper&#8217;s aim is to provide a simple yet <\/span><a href=\"https:\/\/github.com\/pilgr\/Paper#benchmark-results\"><span style=\"font-weight: 400;\">fast<\/span><\/a> <span style=\"font-weight: 400;\">object storage option for Android. It allows us to use Java\/Kotlin classes as is: without annotations, factory methods, mandatory class extensions etc. Moreover adding or removing fields to data classes is no longer a pain \u2013 all data structure changes are handled automatically.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>Installing<\/b><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">add dependency in build.gradle(app) file <\/span><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">implementation<\/span><\/span>\n<pre class=\"lang:default decode:true\">'io.paperdb:paperdb:2.7.1'<\/pre>\n<\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">In Application class, add <\/span><span style=\"font-weight: 400;\">Paper<\/span><span style=\"font-weight: 400;\">.<\/span><span style=\"font-weight: 400;\">init(context) <\/span><span style=\"font-weight: 400;\">inside onCreate method<\/span><\/li>\n<\/ol>\n<p><b>Operations<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Paper.book()<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0.write(<\/span><b>&#8220;user&#8221;<\/b><span style=\"font-weight: 400;\">, <\/span><b>user<\/b><span style=\"font-weight: 400;\">) \/\/ store and update data havingkey user\u2019<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Paper.book().delete(<\/span><b>&#8220;user&#8221;<\/b><span style=\"font-weight: 400;\">) \/\/ delete data having key user<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Paper.book().contains(<\/span><b>&#8220;user&#8221;<\/b><span style=\"font-weight: 400;\">) \/\/ checks whether user key is available in database<\/span><\/p>\n<p><b>val <\/b><span style=\"font-weight: 400;\">user = Paper.book()<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0.read&lt;User&gt;(<\/span><b>&#8220;user&#8221;<\/b><span style=\"font-weight: 400;\">) \/\/ fetch data having key user<\/span><\/p>\n<p><b>SQL<\/b><\/p>\n<p><span style=\"font-weight: 400;\">The other approach to handle offline data to store data in table structured row and column. Data is manipulated with the help of queries.<\/span><\/p>\n<p><b>SQLite<\/b><\/p>\n<p><b>SQLite<\/b><span style=\"font-weight: 400;\"> is an open source SQL <\/span><b>database<\/b><span style=\"font-weight: 400;\"> that stores data to a text file on a device. <\/span><b>Android<\/b><span style=\"font-weight: 400;\"> comes in with built in <\/span><b>SQLite database<\/b><span style=\"font-weight: 400;\"> implementation. <\/span><b>SQLite<\/b><span style=\"font-weight: 400;\"> supports all the relational <\/span><b>database<\/b><span style=\"font-weight: 400;\"> features.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For more learnings go to <\/span><span style=\"font-weight: 400;\">https:\/\/www.tutorialspoint.com\/android\/android_sqlite_database.htm<\/span><\/p>\n<p><b>Room Database<\/b><\/p>\n<p><span style=\"font-weight: 400;\">It is a layer on the top of SQLite. Room Database takes care of complicated queries and operations. It used annotations for creating tables, defining characteristics of the column, operations on the table like insert, delete, create and update. To use Room, create an abstract class extending RoomDatabase.<\/span><\/p>\n<p><b>Installing<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Add dependencies\u00a0<\/span><\/p>\n<pre class=\"lang:default decode:true \">implementation \"android.arch.persistence.room:runtime:1.1.1\"\r\n\r\nannotationProcessor \"android.arch.persistence.room:compiler:1.1.1\"<\/pre>\n<p><span style=\"font-weight: 400;\">For more learning goto<\/span><\/p>\n<p><a href=\"https:\/\/medium.com\/mindorks\/using-room-database-android-jetpack-675a89a0e942\"><span style=\"font-weight: 400;\">https:\/\/medium.com\/mindorks\/using-room-database-android-jetpack-675a89a0e942<\/span><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Android offline handling basically represents the local storage data handling when there is no internet connection to get the basic required information. If not handled, the screen will be out of data and result in a blank screen which ultimately affects the UI experience. There are two ways to handle local data : NoSql\u00a0 SQL [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6156,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[533],"class_list":["post-6155","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","tag-android-offline-handling"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Android Offline Handling - InnovationM - Blog<\/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:\/\/www.innovationm.com\/blog\/android-offline-handling\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android Offline Handling - InnovationM - Blog\" \/>\n<meta property=\"og:description\" content=\"Android offline handling basically represents the local storage data handling when there is no internet connection to get the basic required information. If not handled, the screen will be out of data and result in a blank screen which ultimately affects the UI experience. There are two ways to handle local data : NoSql\u00a0 SQL [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/android-offline-handling\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-13T09:22:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-20T13:25:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/08\/Android-Offline-Handling-innovationm.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/android-offline-handling\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/android-offline-handling\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"Android Offline Handling\",\"datePublished\":\"2020-08-13T09:22:14+00:00\",\"dateModified\":\"2023-01-20T13:25:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/android-offline-handling\\\/\"},\"wordCount\":384,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/android-offline-handling\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/08\\\/Android-Offline-Handling-innovationm.png\",\"keywords\":[\"android offline handling\"],\"articleSection\":[\"Android\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/android-offline-handling\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/android-offline-handling\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/android-offline-handling\\\/\",\"name\":\"Android Offline Handling - InnovationM - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/android-offline-handling\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/android-offline-handling\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/08\\\/Android-Offline-Handling-innovationm.png\",\"datePublished\":\"2020-08-13T09:22:14+00:00\",\"dateModified\":\"2023-01-20T13:25:17+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/android-offline-handling\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/android-offline-handling\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/android-offline-handling\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/08\\\/Android-Offline-Handling-innovationm.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/08\\\/Android-Offline-Handling-innovationm.png\",\"width\":960,\"height\":540,\"caption\":\"android offline handling innovationm blog\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/android-offline-handling\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Android Offline Handling\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Android Offline Handling - InnovationM - Blog","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.innovationm.com\/blog\/android-offline-handling\/","og_locale":"en_US","og_type":"article","og_title":"Android Offline Handling - InnovationM - Blog","og_description":"Android offline handling basically represents the local storage data handling when there is no internet connection to get the basic required information. If not handled, the screen will be out of data and result in a blank screen which ultimately affects the UI experience. There are two ways to handle local data : NoSql\u00a0 SQL [&hellip;]","og_url":"https:\/\/www.innovationm.com\/blog\/android-offline-handling\/","og_site_name":"InnovationM - Blog","article_published_time":"2020-08-13T09:22:14+00:00","article_modified_time":"2023-01-20T13:25:17+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/08\/Android-Offline-Handling-innovationm.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/android-offline-handling\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/android-offline-handling\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"Android Offline Handling","datePublished":"2020-08-13T09:22:14+00:00","dateModified":"2023-01-20T13:25:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/android-offline-handling\/"},"wordCount":384,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/android-offline-handling\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/08\/Android-Offline-Handling-innovationm.png","keywords":["android offline handling"],"articleSection":["Android"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/android-offline-handling\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/android-offline-handling\/","url":"https:\/\/www.innovationm.com\/blog\/android-offline-handling\/","name":"Android Offline Handling - InnovationM - Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/android-offline-handling\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/android-offline-handling\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/08\/Android-Offline-Handling-innovationm.png","datePublished":"2020-08-13T09:22:14+00:00","dateModified":"2023-01-20T13:25:17+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/android-offline-handling\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/android-offline-handling\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/android-offline-handling\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/08\/Android-Offline-Handling-innovationm.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/08\/Android-Offline-Handling-innovationm.png","width":960,"height":540,"caption":"android offline handling innovationm blog"},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/android-offline-handling\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Android Offline Handling"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/6155","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=6155"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/6155\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/6156"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=6155"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=6155"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=6155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}