{"id":690,"date":"2007-12-30T23:58:32","date_gmt":"2007-12-30T22:58:32","guid":{"rendered":"http:\/\/notizblog.org\/2007\/12\/30\/microformats-und-json\/"},"modified":"2023-06-01T09:54:21","modified_gmt":"2023-06-01T07:54:21","slug":"microformats-und-json","status":"publish","type":"post","link":"https:\/\/notiz.blog\/2007\/12\/30\/microformats-und-json\/","title":{"rendered":"Microformats und JSON"},"content":{"rendered":"\n<p>Ich bin vor <a href=\"https:\/\/notiz.blog\/2007\/09\/16\/microjson-microformats-in-json\/\">einiger Zeit<\/a> schon auf das <a href=\"https:\/\/web.archive.org\/web\/20080315062601\/http:\/\/microjson.org\/\">microJSON<\/a> Projekt gesto\u00dfen und fand die Idee, ein einheitliches JSON Format f\u00fcr alle <a href=\"http:\/\/microformats.org\/\">Microformats<\/a> zu erstellen, prinzipiell nicht schlecht, deshalb habe ich auch versucht microJSON f\u00fcr mein <a href=\"https:\/\/wordpress.org\/plugins\/hcard-commenting\/\">hCard-Commenting<\/a> Script einzusetzen.<\/p>\n\n\n\n<p>Bei genauerem Betrachten gibt es bei der <a href=\"https:\/\/web.archive.org\/web\/20080516043808\/http:\/\/microjson.org:80\/wiki\/JCard\">jCard<\/a> aber zwei unsch\u00f6ne Eigenschaften:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Das <code>n<\/code> Attribut wird in JSON als <code>name<\/code> dargestellt.<\/li>\n\n\n\n<li>Das <code>fn<\/code> Attribut wird gat nicht abgebildet.<\/li>\n<\/ol>\n\n\n\n<p>Da ich, um den Username in den WordPress Kommentaren darzustellen, auf <code>fn<\/code> angewiesen bin, habe ich mir verschiedene andere &#8222;hCard to JSON&#8220; Services angeschaut.<br>\n\t<br> Test-hCard: <a href=\"https:\/\/web.archive.org\/web\/20080827191023\/http:\/\/pfefferle.org\/static\/microformats\/hcard-test.html\">http:\/\/pfefferle.org\/static\/microformats\/hcard-test.html<\/a><\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\">\u00dcberblick der einzelnen JSON Objekte<\/h3>\n\n\n\n<p><a href=\"https:\/\/web.archive.org\/web\/20110714085344\/http:\/\/microformatique.com\/optimus\/\">Optimus<\/a>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">{\n  <span class=\"hljs-attr\">from<\/span>: <span class=\"hljs-string\">\"http:\/\/pfefferle.org\/static\/microformats\/hcard-test.html\"<\/span>,\n  <span class=\"hljs-attr\">title<\/span>: <span class=\"hljs-string\">\"hCard Test\"<\/span>,\n  <span class=\"hljs-attr\">hcard<\/span>: {\n    <span class=\"hljs-string\">\"adr\"<\/span>: {\n      <span class=\"hljs-string\">\"street-address\"<\/span>: <span class=\"hljs-string\">\"Street\"<\/span>,\n      <span class=\"hljs-string\">\"region\"<\/span>: <span class=\"hljs-string\">\"State\"<\/span>,\n      <span class=\"hljs-string\">\"locality\"<\/span>: <span class=\"hljs-string\">\"City\"<\/span>,\n      <span class=\"hljs-string\">\"postal-code\"<\/span>: <span class=\"hljs-string\">\"12345\"<\/span>,\n      <span class=\"hljs-string\">\"country-name\"<\/span>: <span class=\"hljs-string\">\"Country\"<\/span>\n    },\n    <span class=\"hljs-string\">\"email\"<\/span>: {\n      <span class=\"hljs-attr\">href<\/span>: <span class=\"hljs-string\">\"mailto:mail@examle.org\"<\/span>,\n      <span class=\"hljs-attr\">value<\/span>: <span class=\"hljs-string\">\"mail@examle.org\"<\/span>\n    },\n    <span class=\"hljs-string\">\"fn\"<\/span>: <span class=\"hljs-string\">\"Mustermann Max\"<\/span>,\n    <span class=\"hljs-string\">\"org\"<\/span>: <span class=\"hljs-string\">\"Organisation\"<\/span>,\n    <span class=\"hljs-string\">\"tel\"<\/span>: <span class=\"hljs-string\">\"111-222-333\"<\/span>,\n    <span class=\"hljs-attr\">url<\/span>: &#91;\n      <span class=\"hljs-string\">\"http:\/\/example.org\"<\/span>, \n      <span class=\"hljs-string\">\"http:\/\/pfefferle.org\/static\/microformats\/aim:goim?screenname=aim\"<\/span>, \n      <span class=\"hljs-string\">\"http:\/\/pfefferle.org\/static\/microformats\/ymsgr:sendIM?yim\"<\/span>\n    ]\n  }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><a href=\"https:\/\/web.archive.org\/web\/20121114174332\/http:\/\/lab.backnetwork.com:80\/ufXtract\/\">ufXtract<\/a>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JSON \/ JSON mit Kommentaren\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\"><span class=\"hljs-comment\">\/\/ ufXtract <\/span>\n{\n  <span class=\"hljs-attr\">\"vcard\"<\/span>: &#91;{\n    <span class=\"hljs-attr\">\"fn\"<\/span>: <span class=\"hljs-string\">\"Mustermann Max\"<\/span>,\n    <span class=\"hljs-attr\">\"n\"<\/span>: {\n      <span class=\"hljs-attr\">\"given-name\"<\/span>: &#91;<span class=\"hljs-string\">\"Mustermann\"<\/span> ],\n      <span class=\"hljs-attr\">\"family-name\"<\/span>: &#91;<span class=\"hljs-string\">\"Max\"<\/span> ]\n    },\n    <span class=\"hljs-attr\">\"adr\"<\/span>: &#91;{\n      <span class=\"hljs-attr\">\"street-address\"<\/span>: &#91;<span class=\"hljs-string\">\"Street\"<\/span> ],\n      <span class=\"hljs-attr\">\"locality\"<\/span>: <span class=\"hljs-string\">\"City\"<\/span>,\n      <span class=\"hljs-attr\">\"region\"<\/span>: <span class=\"hljs-string\">\"State\"<\/span>,\n      <span class=\"hljs-attr\">\"postal-code\"<\/span>: <span class=\"hljs-string\">\"12345\"<\/span>,\n      <span class=\"hljs-attr\">\"country-name\"<\/span>: <span class=\"hljs-string\">\"Country\"<\/span>\n    }],\n    <span class=\"hljs-attr\">\"org\"<\/span>: {\n      <span class=\"hljs-attr\">\"organization-name\"<\/span>: <span class=\"hljs-string\">\"Organisation\"<\/span>\n    },\n    <span class=\"hljs-attr\">\"email\"<\/span>: &#91;<span class=\"hljs-string\">\"mail@examle.org\"<\/span> ],\n    <span class=\"hljs-attr\">\"tel\"<\/span>: &#91;<span class=\"hljs-string\">\"111-222-333\"<\/span> ],\n    <span class=\"hljs-attr\">\"url\"<\/span>: &#91;\n      <span class=\"hljs-string\">\"http:\\\/\\\/example.org\\\/\"<\/span>,\n      <span class=\"hljs-string\">\"aim:goim?screenname=aim\"<\/span>,\n      <span class=\"hljs-string\">\"ymsgr:sendIM?yim\"<\/span>\n    ]\n  }]\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON mit Kommentaren<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><a href=\"https:\/\/github.com\/drewm\/hkit\">hKit Service<\/a> (hKit + JSON)<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">json&#91;{\n  <span class=\"hljs-string\">\"fn\"<\/span>:<span class=\"hljs-string\">\"Mustermann Max\"<\/span>,\n  <span class=\"hljs-string\">\"adr\"<\/span>:{\n    <span class=\"hljs-string\">\"street-address\"<\/span>:<span class=\"hljs-string\">\"Street\"<\/span>,\n    <span class=\"hljs-string\">\"postal-code\"<\/span>:<span class=\"hljs-string\">\"12345\"<\/span>,\n    <span class=\"hljs-string\">\"country-name\"<\/span>:<span class=\"hljs-string\">\"Country\"<\/span>,\n    <span class=\"hljs-string\">\"region\"<\/span>:<span class=\"hljs-string\">\"State\"<\/span>,\n    <span class=\"hljs-string\">\"locality\"<\/span>:<span class=\"hljs-string\">\"City\"<\/span>\n  },\n  <span class=\"hljs-string\">\"email\"<\/span>:<span class=\"hljs-string\">\"mail@examle.org\"<\/span>,\n  <span class=\"hljs-string\">\"org\"<\/span>:<span class=\"hljs-string\">\"Organisation\"<\/span>,\n  <span class=\"hljs-string\">\"tel\"<\/span>:<span class=\"hljs-string\">\"111-222-333\"<\/span>,\n  <span class=\"hljs-string\">\"url\"<\/span>:&#91;\n    <span class=\"hljs-string\">\"http:\\\/\\\/example.org\"<\/span>,\n    <span class=\"hljs-string\">\"http:\\\/\\\/pfefferle.org\\\/static\\\/microformats\\\/aim:goim?screenname=aim\"<\/span>,\n    <span class=\"hljs-string\">\"http:\\\/\\\/pfefferle.org\\\/static\\\/microformats\\\/ymsgr:sendIM?yim\"<\/span>\n  ],\n  <span class=\"hljs-string\">\"n\"<\/span>:{\n    <span class=\"hljs-string\">\"given-name\"<\/span>:<span class=\"hljs-string\">\"Mustermann\"<\/span>,\n    <span class=\"hljs-string\">\"family-name\"<\/span>:<span class=\"hljs-string\">\"Max\"<\/span>\n  }\n}]<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><a href=\"https:\/\/web.archive.org\/web\/20071213004055\/http:\/\/microjson.org\/\">microJSON<\/a> (<a href=\"https:\/\/web.archive.org\/web\/20080516043808\/http:\/\/microjson.org:80\/wiki\/JCard\">jCard<\/a>)<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JSON \/ JSON mit Kommentaren\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\">{\n<span class=\"hljs-attr\">\"vcard\"<\/span>:{\n  <span class=\"hljs-attr\">\"name\"<\/span>:{\n    <span class=\"hljs-attr\">\"given\"<\/span>:<span class=\"hljs-string\">\"Mustermann\"<\/span>,\n    <span class=\"hljs-attr\">\"family\"<\/span>:<span class=\"hljs-string\">\"Max\"<\/span>\n  },\n  <span class=\"hljs-attr\">\"org\"<\/span>:<span class=\"hljs-string\">\"Company\"<\/span>,\n  <span class=\"hljs-attr\">\"email\"<\/span>:<span class=\"hljs-string\">\"mail@examle.org\"<\/span>,\n  <span class=\"hljs-attr\">\"address\"<\/span>:{\n    <span class=\"hljs-attr\">\"street-address\"<\/span>:<span class=\"hljs-string\">\"Street\"<\/span>,\n    <span class=\"hljs-attr\">\"postal-code\"<\/span>:<span class=\"hljs-string\">\"12345\"<\/span>,\n    <span class=\"hljs-attr\">\"country-name\"<\/span>:<span class=\"hljs-string\">\"Country\"<\/span>,\n    <span class=\"hljs-attr\">\"region\"<\/span>:<span class=\"hljs-string\">\"State\"<\/span>,\n    <span class=\"hljs-attr\">\"locality\"<\/span>:<span class=\"hljs-string\">\"City\"<\/span>\n  },\n  <span class=\"hljs-attr\">\"tel\"<\/span>:<span class=\"hljs-string\">\"111-222-333\"<\/span>,\n  <span class=\"hljs-attr\">\"aim\"<\/span>:<span class=\"hljs-string\">\"aim\"<\/span>,\n  <span class=\"hljs-attr\">\"yim\"<\/span>:<span class=\"hljs-string\">\"yim\"<\/span>,\n  <span class=\"hljs-attr\">\"url\"<\/span>:<span class=\"hljs-string\">\"http:\\\/\\\/example.org\"<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON mit Kommentaren<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Leider unterscheidet sich jedes dieser JSON Formate (wenn auch teilweise nur gering) vom anderen, was ja prinzipiell kein wirklich gro\u00dfes Problem ist. Zum Problem wird es erst dann, wenn man einen dieser Dienste durch einen anderen ersetzt, da ein solcher Vorgang immer mit \u00c4nderungen am Quellcode verbunden ist.<\/p>\n\n\n\n<p>Es ist im <a href=\"https:\/\/de.wikipedia.org\/wiki\/Serviceorientierte_Architektur\"><abbr title=\"service oriented architecture\">SOA<\/abbr><\/a> Ansatz zwar nicht definiert, dass die Services \u00e4hnlich wie bei der <a href=\"https:\/\/de.wikipedia.org\/wiki\/Schichtenarchitektur\">Multi-Tier-Architektur<\/a> austauschbar sein sollten, es w\u00fcrde jedoch eine Menge an Arbeit erspahren.<\/p>\n\n\n\n<p>Microformats sind wohl definierte offene Standards, wieso nicht auch die Austauschformate wohl definieren?<\/p>\n\n\n\n<p>Weiterf\u00fchrende Links:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"http:\/\/microformats.org\/wiki\/json\">JSON im Microformats Wiki<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/web.archive.org\/web\/20080331114412\/http:\/\/microjson.org\/wiki\/Welcome_to_the_MicroJSON_Wiki\">microJSON Wiki<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Ich bin vor einiger Zeit schon auf das microJSON Projekt gesto\u00dfen und fand die Idee, ein einheitliches JSON Format f\u00fcr alle Microformats zu erstellen, prinzipiell nicht schlecht, deshalb habe ich auch versucht microJSON f\u00fcr mein hCard-Commenting Script einzusetzen. Bei genauerem Betrachten gibt es bei der jCard aber zwei unsch\u00f6ne Eigenschaften: Da ich, um den Username [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"webmentions_disabled_pings":false,"webmentions_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[2],"tags":[166,473,404,164],"class_list":{"0":"post-690","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-web","7":"tag-hcard","8":"tag-jcard","9":"tag-json","10":"tag-microformats","11":"h-entry","12":"hentry"},"_links":{"self":[{"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/posts\/690","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/comments?post=690"}],"version-history":[{"count":5,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/posts\/690\/revisions"}],"predecessor-version":[{"id":22661,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/posts\/690\/revisions\/22661"}],"wp:attachment":[{"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/media?parent=690"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/categories?post=690"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/tags?post=690"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}