{"id":8,"date":"2009-02-08T19:26:49","date_gmt":"2009-02-09T04:26:49","guid":{"rendered":"https:\/\/www.kellyrob99.com\/blog\/?p=8"},"modified":"2009-02-09T21:40:02","modified_gmt":"2009-02-10T06:40:02","slug":"my-favorite-new-groovy-trick","status":"publish","type":"post","link":"https:\/\/www.kellyrob99.com\/blog\/2009\/02\/08\/my-favorite-new-groovy-trick\/","title":{"rendered":"My favorite new Groovy trick"},"content":{"rendered":"<p>I program primarily in <a class=\"zem_slink\" title=\"Java (software platform)\" rel=\"homepage\" href=\"http:\/\/java.sun.com\">Java<\/a>, but I must admit I&#8217;m a bit of a fanboy when it comes to the Groovy language. The syntatic sugar helps reduce some of the overhead of doing what should be simple things in Java, like reading Files or parsing XML. In particular the additions to the Collections API make things like creating populated data structures and iteration a breeze.<\/p>\n<p>The <a href=\"http:\/\/groovy.codehaus.org\/groovy-jdk\/java\/util\/Map.html\" target=\"_blank\">Groovy Map API<\/a> adds a very handy method which allows for specifying a default value on get() for when the Map key may or may not exist. I find this particularly useful for those all too common occasions you need to count occurences of things in a particular domain.<\/p>\n<pre class=\"brush: groovy; title: ; notranslate\" title=\"\">\r\n\/\/\r\n\/**\r\n* Looks up an item in a Map for the given key and returns the value - unless there is no entry for the given key in which case add the default value to the map and return that\r\n*\/\r\nget(Object key, Object defaultValue)\r\n<\/pre>\n<p style=\"text-align: left;\">And you can use it like this<\/p>\n<pre class=\"brush: groovy; title: ; notranslate\" title=\"\">\r\n\/* Counting using a map*\/\r\ndef map = &#x5B;:]\r\ncollection.each{\r\nmap&#x5B;it] = map.get(it, 0) + 1\r\n}\r\n<\/pre>\n<p>Java has this ability for a <a title=\"Properties javadoc\" href=\"http:\/\/java.sun.com\/j2se\/1.4.2\/docs\/api\/java\/util\/Properties.html\" target=\"_blank\">Properties object<\/a> but they still haven&#8217;t gotten around to adding it to Collections. I&#8217;ve seen different ways to accomplish the same thing using <a title=\" apache commons-collections\" href=\"http:\/\/commons.apache.org\/collections\/\" target=\"_blank\">commons-collections<\/a> or <a title=\"google-collections\" href=\"http:\/\/code.google.com\/p\/google-collections\/\" target=\"_blank\">Google collections<\/a>, but this is probably the easiest I&#8217;ve used. Thankfully Groovy and Java are pretty much interchangeable, at least for my uses, so I&#8217;ll just continue to try and pick the right one for the right job.<\/p>\n<div class=\"zemanta-pixie\"><a class=\"zemanta-pixie-a\" title=\"Zemified by Zemanta\" href=\"http:\/\/reblog.zemanta.com\/zemified\/55f162c0-db9a-4258-94e3-112832c20172\/\"><img data-recalc-dims=\"1\" decoding=\"async\" class=\"zemanta-pixie-img\" src=\"https:\/\/i0.wp.com\/img.zemanta.com\/reblog_c.png\" alt=\"Reblog this post [with Zemanta]\" \/><\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I program primarily in Java, but I must admit I&#8217;m a bit of a fanboy when it comes to the Groovy language. The syntatic sugar helps reduce some of the overhead of doing what should be simple things in Java, like reading Files or parsing XML. In particular the additions to the Collections API make [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[6],"tags":[9,257,258],"class_list":["post-8","post","type-post","status-publish","format-standard","hentry","category-dev","tag-collections","tag-groovy","tag-java"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"I program primarily in Java, but I must admit I&#039;m a bit of a fanboy when it comes to the Groovy language. The syntatic sugar helps reduce some of the overhead of doing what should be simple things in Java, like reading Files or parsing XML. In particular the additions to the Collections API make\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"TheKaptain\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.kellyrob99.com\/blog\/2009\/02\/08\/my-favorite-new-groovy-trick\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"The Kaptain on ... stuff | Tales of development, life and the folly that goes along with both\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"My favorite new Groovy trick | The Kaptain on ... stuff\" \/>\n\t\t<meta property=\"og:description\" content=\"I program primarily in Java, but I must admit I&#039;m a bit of a fanboy when it comes to the Groovy language. The syntatic sugar helps reduce some of the overhead of doing what should be simple things in Java, like reading Files or parsing XML. In particular the additions to the Collections API make\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.kellyrob99.com\/blog\/2009\/02\/08\/my-favorite-new-groovy-trick\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2009-02-09T04:26:49+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2009-02-10T06:40:02+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"My favorite new Groovy trick | The Kaptain on ... stuff\" \/>\n\t\t<meta name=\"twitter:description\" content=\"I program primarily in Java, but I must admit I&#039;m a bit of a fanboy when it comes to the Groovy language. The syntatic sugar helps reduce some of the overhead of doing what should be simple things in Java, like reading Files or parsing XML. In particular the additions to the Collections API make\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/2009\\\/02\\\/08\\\/my-favorite-new-groovy-trick\\\/#article\",\"name\":\"My favorite new Groovy trick | The Kaptain on ... stuff\",\"headline\":\"My favorite new Groovy trick\",\"author\":{\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/author\\\/admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"http:\\\/\\\/img.zemanta.com\\\/reblog_c.png?x-id=55f162c0-db9a-4258-94e3-112832c20172\",\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/2009\\\/02\\\/08\\\/my-favorite-new-groovy-trick\\\/#articleImage\"},\"datePublished\":\"2009-02-08T19:26:49-09:00\",\"dateModified\":\"2009-02-09T21:40:02-09:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/2009\\\/02\\\/08\\\/my-favorite-new-groovy-trick\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/2009\\\/02\\\/08\\\/my-favorite-new-groovy-trick\\\/#webpage\"},\"articleSection\":\"Development, Collections, Groovy, Java\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/2009\\\/02\\\/08\\\/my-favorite-new-groovy-trick\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/category\\\/dev\\\/#listItem\",\"name\":\"Development\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/category\\\/dev\\\/#listItem\",\"position\":2,\"name\":\"Development\",\"item\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/category\\\/dev\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/2009\\\/02\\\/08\\\/my-favorite-new-groovy-trick\\\/#listItem\",\"name\":\"My favorite new Groovy trick\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/2009\\\/02\\\/08\\\/my-favorite-new-groovy-trick\\\/#listItem\",\"position\":3,\"name\":\"My favorite new Groovy trick\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/category\\\/dev\\\/#listItem\",\"name\":\"Development\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/#organization\",\"name\":\"The Kaptain on ... stuff\",\"description\":\"Tales of development, life and the folly that goes along with both\",\"url\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/author\\\/admin\\\/#author\",\"url\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/author\\\/admin\\\/\",\"name\":\"TheKaptain\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/2009\\\/02\\\/08\\\/my-favorite-new-groovy-trick\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e41f09f3548f065fe6967ac904d3ea2a638614c16d879cac47cfad64e5b1426a?s=96&d=monsterid&r=g\",\"width\":96,\"height\":96,\"caption\":\"TheKaptain\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/2009\\\/02\\\/08\\\/my-favorite-new-groovy-trick\\\/#webpage\",\"url\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/2009\\\/02\\\/08\\\/my-favorite-new-groovy-trick\\\/\",\"name\":\"My favorite new Groovy trick | The Kaptain on ... stuff\",\"description\":\"I program primarily in Java, but I must admit I'm a bit of a fanboy when it comes to the Groovy language. The syntatic sugar helps reduce some of the overhead of doing what should be simple things in Java, like reading Files or parsing XML. In particular the additions to the Collections API make\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/2009\\\/02\\\/08\\\/my-favorite-new-groovy-trick\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/author\\\/admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/author\\\/admin\\\/#author\"},\"datePublished\":\"2009-02-08T19:26:49-09:00\",\"dateModified\":\"2009-02-09T21:40:02-09:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/\",\"name\":\"The Kaptain on ... stuff\",\"description\":\"Tales of development, life and the folly that goes along with both\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.kellyrob99.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"My favorite new Groovy trick | The Kaptain on ... stuff","description":"I program primarily in Java, but I must admit I'm a bit of a fanboy when it comes to the Groovy language. The syntatic sugar helps reduce some of the overhead of doing what should be simple things in Java, like reading Files or parsing XML. In particular the additions to the Collections API make","canonical_url":"https:\/\/www.kellyrob99.com\/blog\/2009\/02\/08\/my-favorite-new-groovy-trick\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.kellyrob99.com\/blog\/2009\/02\/08\/my-favorite-new-groovy-trick\/#article","name":"My favorite new Groovy trick | The Kaptain on ... stuff","headline":"My favorite new Groovy trick","author":{"@id":"https:\/\/www.kellyrob99.com\/blog\/author\/admin\/#author"},"publisher":{"@id":"https:\/\/www.kellyrob99.com\/blog\/#organization"},"image":{"@type":"ImageObject","url":"http:\/\/img.zemanta.com\/reblog_c.png?x-id=55f162c0-db9a-4258-94e3-112832c20172","@id":"https:\/\/www.kellyrob99.com\/blog\/2009\/02\/08\/my-favorite-new-groovy-trick\/#articleImage"},"datePublished":"2009-02-08T19:26:49-09:00","dateModified":"2009-02-09T21:40:02-09:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.kellyrob99.com\/blog\/2009\/02\/08\/my-favorite-new-groovy-trick\/#webpage"},"isPartOf":{"@id":"https:\/\/www.kellyrob99.com\/blog\/2009\/02\/08\/my-favorite-new-groovy-trick\/#webpage"},"articleSection":"Development, Collections, Groovy, Java"},{"@type":"BreadcrumbList","@id":"https:\/\/www.kellyrob99.com\/blog\/2009\/02\/08\/my-favorite-new-groovy-trick\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.kellyrob99.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/www.kellyrob99.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/www.kellyrob99.com\/blog\/category\/dev\/#listItem","name":"Development"}},{"@type":"ListItem","@id":"https:\/\/www.kellyrob99.com\/blog\/category\/dev\/#listItem","position":2,"name":"Development","item":"https:\/\/www.kellyrob99.com\/blog\/category\/dev\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.kellyrob99.com\/blog\/2009\/02\/08\/my-favorite-new-groovy-trick\/#listItem","name":"My favorite new Groovy trick"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.kellyrob99.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.kellyrob99.com\/blog\/2009\/02\/08\/my-favorite-new-groovy-trick\/#listItem","position":3,"name":"My favorite new Groovy trick","previousItem":{"@type":"ListItem","@id":"https:\/\/www.kellyrob99.com\/blog\/category\/dev\/#listItem","name":"Development"}}]},{"@type":"Organization","@id":"https:\/\/www.kellyrob99.com\/blog\/#organization","name":"The Kaptain on ... stuff","description":"Tales of development, life and the folly that goes along with both","url":"https:\/\/www.kellyrob99.com\/blog\/"},{"@type":"Person","@id":"https:\/\/www.kellyrob99.com\/blog\/author\/admin\/#author","url":"https:\/\/www.kellyrob99.com\/blog\/author\/admin\/","name":"TheKaptain","image":{"@type":"ImageObject","@id":"https:\/\/www.kellyrob99.com\/blog\/2009\/02\/08\/my-favorite-new-groovy-trick\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/e41f09f3548f065fe6967ac904d3ea2a638614c16d879cac47cfad64e5b1426a?s=96&d=monsterid&r=g","width":96,"height":96,"caption":"TheKaptain"}},{"@type":"WebPage","@id":"https:\/\/www.kellyrob99.com\/blog\/2009\/02\/08\/my-favorite-new-groovy-trick\/#webpage","url":"https:\/\/www.kellyrob99.com\/blog\/2009\/02\/08\/my-favorite-new-groovy-trick\/","name":"My favorite new Groovy trick | The Kaptain on ... stuff","description":"I program primarily in Java, but I must admit I'm a bit of a fanboy when it comes to the Groovy language. The syntatic sugar helps reduce some of the overhead of doing what should be simple things in Java, like reading Files or parsing XML. In particular the additions to the Collections API make","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.kellyrob99.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.kellyrob99.com\/blog\/2009\/02\/08\/my-favorite-new-groovy-trick\/#breadcrumblist"},"author":{"@id":"https:\/\/www.kellyrob99.com\/blog\/author\/admin\/#author"},"creator":{"@id":"https:\/\/www.kellyrob99.com\/blog\/author\/admin\/#author"},"datePublished":"2009-02-08T19:26:49-09:00","dateModified":"2009-02-09T21:40:02-09:00"},{"@type":"WebSite","@id":"https:\/\/www.kellyrob99.com\/blog\/#website","url":"https:\/\/www.kellyrob99.com\/blog\/","name":"The Kaptain on ... stuff","description":"Tales of development, life and the folly that goes along with both","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.kellyrob99.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"The Kaptain on ... stuff | Tales of development, life and the folly that goes along with both","og:type":"article","og:title":"My favorite new Groovy trick | The Kaptain on ... stuff","og:description":"I program primarily in Java, but I must admit I'm a bit of a fanboy when it comes to the Groovy language. The syntatic sugar helps reduce some of the overhead of doing what should be simple things in Java, like reading Files or parsing XML. In particular the additions to the Collections API make","og:url":"https:\/\/www.kellyrob99.com\/blog\/2009\/02\/08\/my-favorite-new-groovy-trick\/","article:published_time":"2009-02-09T04:26:49+00:00","article:modified_time":"2009-02-10T06:40:02+00:00","twitter:card":"summary","twitter:title":"My favorite new Groovy trick | The Kaptain on ... stuff","twitter:description":"I program primarily in Java, but I must admit I'm a bit of a fanboy when it comes to the Groovy language. The syntatic sugar helps reduce some of the overhead of doing what should be simple things in Java, like reading Files or parsing XML. In particular the additions to the Collections API make"},"aioseo_meta_data":{"post_id":"8","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-02-09 05:15:28","updated":"2025-11-29 19:58:24","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.kellyrob99.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.kellyrob99.com\/blog\/category\/dev\/\" title=\"Development\">Development<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tMy favorite new Groovy trick\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.kellyrob99.com\/blog"},{"label":"Development","link":"https:\/\/www.kellyrob99.com\/blog\/category\/dev\/"},{"label":"My favorite new Groovy trick","link":"https:\/\/www.kellyrob99.com\/blog\/2009\/02\/08\/my-favorite-new-groovy-trick\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/prjtg-8","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.kellyrob99.com\/blog\/wp-json\/wp\/v2\/posts\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kellyrob99.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kellyrob99.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kellyrob99.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kellyrob99.com\/blog\/wp-json\/wp\/v2\/comments?post=8"}],"version-history":[{"count":16,"href":"https:\/\/www.kellyrob99.com\/blog\/wp-json\/wp\/v2\/posts\/8\/revisions"}],"predecessor-version":[{"id":22,"href":"https:\/\/www.kellyrob99.com\/blog\/wp-json\/wp\/v2\/posts\/8\/revisions\/22"}],"wp:attachment":[{"href":"https:\/\/www.kellyrob99.com\/blog\/wp-json\/wp\/v2\/media?parent=8"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kellyrob99.com\/blog\/wp-json\/wp\/v2\/categories?post=8"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kellyrob99.com\/blog\/wp-json\/wp\/v2\/tags?post=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}