A small tool to view real-world ActivityPub objects as JSON! Enter a URL
or username from Mastodon or a similar service below, and we'll send a
request with
the right
Accept
header
to the server to view the underlying object.
{
"@context": [
"https://www.w3.org/ns/activitystreams",
{
"ostatus": "http://ostatus.org#",
"atomUri": "ostatus:atomUri",
"inReplyToAtomUri": "ostatus:inReplyToAtomUri",
"conversation": "ostatus:conversation",
"sensitive": "as:sensitive",
"toot": "http://joinmastodon.org/ns#",
"votersCount": "toot:votersCount",
"Hashtag": "as:Hashtag",
"blurhash": "toot:blurhash",
"focalPoint": {
"@container": "@list",
"@id": "toot:focalPoint"
}
}
],
"id": "https://fantastic.earth/users/abnv/collections/featured",
"type": "OrderedCollection",
"totalItems": 5,
"orderedItems": [
{
"id": "https://fantastic.earth/users/abnv/statuses/110481168853488318",
"type": "Note",
"summary": null,
"inReplyTo": null,
"published": "2023-06-03T16:14:10Z",
"url": "https://fantastic.earth/@abnv/110481168853488318",
"attributedTo": "https://fantastic.earth/users/abnv",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://fantastic.earth/users/abnv/followers"
],
"sensitive": false,
"atomUri": "https://fantastic.earth/users/abnv/statuses/110481168853488318",
"inReplyToAtomUri": null,
"conversation": "tag:fantastic.earth,2023-06-03:objectId=3396524:objectType=Conversation",
"content": "<p>I wrote the fourth part of my <a href=\"https://fantastic.earth/tags/blog\" class=\"mention hashtag\" rel=\"tag\">#<span>blog</span></a> series “Implementing Co, a small programming language with <a href=\"https://fantastic.earth/tags/coroutines\" class=\"mention hashtag\" rel=\"tag\">#<span>coroutines</span></a>”. And this time, we add support for channels in <a href=\"https://fantastic.earth/tags/Co\" class=\"mention hashtag\" rel=\"tag\">#<span>Co</span></a> for inter-coroutine communication. <a href=\"https://abhinavsarkar.net/posts/implementing-co-4/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">abhinavsarkar.net/posts/implem</span><span class=\"invisible\">enting-co-4/</span></a></p><p><a href=\"https://fantastic.earth/tags/Programming\" class=\"mention hashtag\" rel=\"tag\">#<span>Programming</span></a> <a href=\"https://fantastic.earth/tags/PLT\" class=\"mention hashtag\" rel=\"tag\">#<span>PLT</span></a> <a href=\"https://fantastic.earth/tags/ProgrammingLanguages\" class=\"mention hashtag\" rel=\"tag\">#<span>ProgrammingLanguages</span></a> <a href=\"https://fantastic.earth/tags/Compilers\" class=\"mention hashtag\" rel=\"tag\">#<span>Compilers</span></a> <a href=\"https://fantastic.earth/tags/Haskell\" class=\"mention hashtag\" rel=\"tag\">#<span>Haskell</span></a> <a href=\"https://fantastic.earth/tags/concurrency\" class=\"mention hashtag\" rel=\"tag\">#<span>concurrency</span></a></p>",
"contentMap": {
"en": "<p>I wrote the fourth part of my <a href=\"https://fantastic.earth/tags/blog\" class=\"mention hashtag\" rel=\"tag\">#<span>blog</span></a> series “Implementing Co, a small programming language with <a href=\"https://fantastic.earth/tags/coroutines\" class=\"mention hashtag\" rel=\"tag\">#<span>coroutines</span></a>”. And this time, we add support for channels in <a href=\"https://fantastic.earth/tags/Co\" class=\"mention hashtag\" rel=\"tag\">#<span>Co</span></a> for inter-coroutine communication. <a href=\"https://abhinavsarkar.net/posts/implementing-co-4/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">abhinavsarkar.net/posts/implem</span><span class=\"invisible\">enting-co-4/</span></a></p><p><a href=\"https://fantastic.earth/tags/Programming\" class=\"mention hashtag\" rel=\"tag\">#<span>Programming</span></a> <a href=\"https://fantastic.earth/tags/PLT\" class=\"mention hashtag\" rel=\"tag\">#<span>PLT</span></a> <a href=\"https://fantastic.earth/tags/ProgrammingLanguages\" class=\"mention hashtag\" rel=\"tag\">#<span>ProgrammingLanguages</span></a> <a href=\"https://fantastic.earth/tags/Compilers\" class=\"mention hashtag\" rel=\"tag\">#<span>Compilers</span></a> <a href=\"https://fantastic.earth/tags/Haskell\" class=\"mention hashtag\" rel=\"tag\">#<span>Haskell</span></a> <a href=\"https://fantastic.earth/tags/concurrency\" class=\"mention hashtag\" rel=\"tag\">#<span>concurrency</span></a></p>"
},
"updated": "2025-02-22T02:36:28Z",
"attachment": [],
"tag": [
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/blog",
"name": "#blog"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/programming",
"name": "#programming"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/plt",
"name": "#plt"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/compilers",
"name": "#compilers"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/haskell",
"name": "#haskell"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/concurrency",
"name": "#concurrency"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/programminglanguages",
"name": "#programminglanguages"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/coroutines",
"name": "#coroutines"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/co",
"name": "#co"
}
],
"replies": {
"id": "https://fantastic.earth/users/abnv/statuses/110481168853488318/replies",
"type": "Collection",
"first": {
"type": "CollectionPage",
"next": "https://fantastic.earth/users/abnv/statuses/110481168853488318/replies?only_other_accounts=true&page=true",
"partOf": "https://fantastic.earth/users/abnv/statuses/110481168853488318/replies",
"items": []
}
},
"likes": {
"id": "https://fantastic.earth/users/abnv/statuses/110481168853488318/likes",
"type": "Collection",
"totalItems": 41
},
"shares": {
"id": "https://fantastic.earth/users/abnv/statuses/110481168853488318/shares",
"type": "Collection",
"totalItems": 27
}
},
{
"id": "https://fantastic.earth/users/abnv/statuses/113901162100600307",
"type": "Note",
"summary": null,
"inReplyTo": null,
"published": "2025-01-27T16:03:26Z",
"url": "https://fantastic.earth/@abnv/113901162100600307",
"attributedTo": "https://fantastic.earth/users/abnv",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://fantastic.earth/users/abnv/followers"
],
"sensitive": false,
"atomUri": "https://fantastic.earth/users/abnv/statuses/113901162100600307",
"inReplyToAtomUri": null,
"conversation": "tag:fantastic.earth,2025-01-27:objectId=16887099:objectType=Conversation",
"content": "<p>Check out my series of <a href=\"https://fantastic.earth/tags/blog\" class=\"mention hashtag\" rel=\"tag\">#<span>blog</span></a> posts about writing a fast <a href=\"https://fantastic.earth/tags/Sudoku\" class=\"mention hashtag\" rel=\"tag\">#<span>Sudoku</span></a> solver in <a href=\"https://fantastic.earth/tags/Haskell\" class=\"mention hashtag\" rel=\"tag\">#<span>Haskell</span></a>, starting with this post: <a href=\"https://abhinavsarkar.net/posts/fast-sudoku-solver-in-haskell-1/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">abhinavsarkar.net/posts/fast-s</span><span class=\"invisible\">udoku-solver-in-haskell-1/</span></a></p><p>Comments, boosts and likes appreciated.</p><p><a href=\"https://fantastic.earth/tags/programming\" class=\"mention hashtag\" rel=\"tag\">#<span>programming</span></a> <a href=\"https://fantastic.earth/tags/functionalprogramming\" class=\"mention hashtag\" rel=\"tag\">#<span>functionalprogramming</span></a> <a href=\"https://fantastic.earth/tags/puzzles\" class=\"mention hashtag\" rel=\"tag\">#<span>puzzles</span></a></p>",
"contentMap": {
"en": "<p>Check out my series of <a href=\"https://fantastic.earth/tags/blog\" class=\"mention hashtag\" rel=\"tag\">#<span>blog</span></a> posts about writing a fast <a href=\"https://fantastic.earth/tags/Sudoku\" class=\"mention hashtag\" rel=\"tag\">#<span>Sudoku</span></a> solver in <a href=\"https://fantastic.earth/tags/Haskell\" class=\"mention hashtag\" rel=\"tag\">#<span>Haskell</span></a>, starting with this post: <a href=\"https://abhinavsarkar.net/posts/fast-sudoku-solver-in-haskell-1/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">abhinavsarkar.net/posts/fast-s</span><span class=\"invisible\">udoku-solver-in-haskell-1/</span></a></p><p>Comments, boosts and likes appreciated.</p><p><a href=\"https://fantastic.earth/tags/programming\" class=\"mention hashtag\" rel=\"tag\">#<span>programming</span></a> <a href=\"https://fantastic.earth/tags/functionalprogramming\" class=\"mention hashtag\" rel=\"tag\">#<span>functionalprogramming</span></a> <a href=\"https://fantastic.earth/tags/puzzles\" class=\"mention hashtag\" rel=\"tag\">#<span>puzzles</span></a></p>"
},
"updated": "2025-01-27T17:13:07Z",
"attachment": [
{
"type": "Document",
"mediaType": "image/png",
"url": "https://fantastic.earth/system/media_attachments/files/113/901/295/052/648/797/original/bb5190731190d01d.png",
"name": "a completed Sudoku puzzle",
"blurhash": "U3RfkB~qIU_3?bayj[ayIUayj[ay_3j[WBay",
"width": 1306,
"height": 1306
}
],
"tag": [
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/blog",
"name": "#blog"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/sudoku",
"name": "#sudoku"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/haskell",
"name": "#haskell"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/programming",
"name": "#programming"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/functionalprogramming",
"name": "#functionalprogramming"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/puzzles",
"name": "#puzzles"
}
],
"replies": {
"id": "https://fantastic.earth/users/abnv/statuses/113901162100600307/replies",
"type": "Collection",
"first": {
"type": "CollectionPage",
"next": "https://fantastic.earth/users/abnv/statuses/113901162100600307/replies?only_other_accounts=true&page=true",
"partOf": "https://fantastic.earth/users/abnv/statuses/113901162100600307/replies",
"items": []
}
},
"likes": {
"id": "https://fantastic.earth/users/abnv/statuses/113901162100600307/likes",
"type": "Collection",
"totalItems": 14
},
"shares": {
"id": "https://fantastic.earth/users/abnv/statuses/113901162100600307/shares",
"type": "Collection",
"totalItems": 7
}
},
{
"id": "https://fantastic.earth/users/abnv/statuses/113977947315234193",
"type": "Note",
"summary": null,
"inReplyTo": null,
"published": "2025-02-10T05:30:55Z",
"url": "https://fantastic.earth/@abnv/113977947315234193",
"attributedTo": "https://fantastic.earth/users/abnv",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://fantastic.earth/users/abnv/followers"
],
"sensitive": false,
"atomUri": "https://fantastic.earth/users/abnv/statuses/113977947315234193",
"inReplyToAtomUri": null,
"conversation": "tag:fantastic.earth,2025-02-10:objectId=17180200:objectType=Conversation",
"content": "<p><a href=\"https://fantastic.earth\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"\">fantastic.earth</span><span class=\"invisible\"></span></a> is growing, literally. After running on a small 4 GB server for two years, we have recently migrated to a 64 GB server. Now we can host even more services for our members. We currently run these services:</p><p>- <a href=\"https://fantastic.earth/tags/Mastodon\" class=\"mention hashtag\" rel=\"tag\">#<span>Mastodon</span></a> (Microblogging)<br />- <a href=\"https://fantastic.earth/tags/Pixelfed\" class=\"mention hashtag\" rel=\"tag\">#<span>Pixelfed</span></a> (Image posting)<br />- <a href=\"https://fantastic.earth/tags/Bookwyrm\" class=\"mention hashtag\" rel=\"tag\">#<span>Bookwyrm</span></a> (Book reading tracking)<br />- <a href=\"https://fantastic.earth/tags/Miniflux\" class=\"mention hashtag\" rel=\"tag\">#<span>Miniflux</span></a> + <a href=\"https://fantastic.earth/tags/Feedlynx\" class=\"mention hashtag\" rel=\"tag\">#<span>Feedlynx</span></a> (Feed reading + Read-later bookmarking)<br />- <a href=\"https://fantastic.earth/tags/Nextcloud\" class=\"mention hashtag\" rel=\"tag\">#<span>Nextcloud</span></a> (Office suite and cloud storage)</p><p>Our server is paid and invite-only. If you know any existing members personally, and would like to use well-moderated and fast services, please reach out to them for an invite.</p>",
"contentMap": {
"en": "<p><a href=\"https://fantastic.earth\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"\">fantastic.earth</span><span class=\"invisible\"></span></a> is growing, literally. After running on a small 4 GB server for two years, we have recently migrated to a 64 GB server. Now we can host even more services for our members. We currently run these services:</p><p>- <a href=\"https://fantastic.earth/tags/Mastodon\" class=\"mention hashtag\" rel=\"tag\">#<span>Mastodon</span></a> (Microblogging)<br />- <a href=\"https://fantastic.earth/tags/Pixelfed\" class=\"mention hashtag\" rel=\"tag\">#<span>Pixelfed</span></a> (Image posting)<br />- <a href=\"https://fantastic.earth/tags/Bookwyrm\" class=\"mention hashtag\" rel=\"tag\">#<span>Bookwyrm</span></a> (Book reading tracking)<br />- <a href=\"https://fantastic.earth/tags/Miniflux\" class=\"mention hashtag\" rel=\"tag\">#<span>Miniflux</span></a> + <a href=\"https://fantastic.earth/tags/Feedlynx\" class=\"mention hashtag\" rel=\"tag\">#<span>Feedlynx</span></a> (Feed reading + Read-later bookmarking)<br />- <a href=\"https://fantastic.earth/tags/Nextcloud\" class=\"mention hashtag\" rel=\"tag\">#<span>Nextcloud</span></a> (Office suite and cloud storage)</p><p>Our server is paid and invite-only. If you know any existing members personally, and would like to use well-moderated and fast services, please reach out to them for an invite.</p>"
},
"updated": "2025-02-10T05:33:12Z",
"attachment": [
{
"type": "Document",
"mediaType": "image/png",
"url": "https://fantastic.earth/system/media_attachments/files/113/977/947/095/189/095/original/43877b1f1df417aa.png",
"name": "A table showing data received and sent yearly by the fantastic.earth server for 2022–25:\n\nyear rx tx total\n2022 351.55 GiB 75.60 GiB 427.15 GiB\n2023 5.93 TiB 6.99 TiB 12.92 TiB\n2024 5.81 TiB 8.07 TiB 13.88 TiB\n2025 536.84 GiB 1.06 TiB 1.59 TiB\n2025 estimated 5.72 TiB 11.62 TiB 17.34 TiB",
"blurhash": "UMQJflxbxbbW4nj[j[ju4nNFR%s=00t7oMWA",
"width": 668,
"height": 174
}
],
"tag": [
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/mastodon",
"name": "#mastodon"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/pixelfed",
"name": "#pixelfed"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/bookwyrm",
"name": "#bookwyrm"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/miniflux",
"name": "#miniflux"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/feedlynx",
"name": "#feedlynx"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/nextcloud",
"name": "#nextcloud"
}
],
"replies": {
"id": "https://fantastic.earth/users/abnv/statuses/113977947315234193/replies",
"type": "Collection",
"first": {
"type": "CollectionPage",
"next": "https://fantastic.earth/users/abnv/statuses/113977947315234193/replies?min_id=114382114368626277&page=true",
"partOf": "https://fantastic.earth/users/abnv/statuses/113977947315234193/replies",
"items": [
"https://fantastic.earth/users/abnv/statuses/113983300617877096",
"https://fantastic.earth/users/abnv/statuses/114382114368626277"
]
}
},
"likes": {
"id": "https://fantastic.earth/users/abnv/statuses/113977947315234193/likes",
"type": "Collection",
"totalItems": 17
},
"shares": {
"id": "https://fantastic.earth/users/abnv/statuses/113977947315234193/shares",
"type": "Collection",
"totalItems": 5
}
},
{
"id": "https://fantastic.earth/users/abnv/statuses/113856008812394988",
"type": "Note",
"summary": null,
"inReplyTo": null,
"published": "2025-01-19T16:40:21Z",
"url": "https://fantastic.earth/@abnv/113856008812394988",
"attributedTo": "https://fantastic.earth/users/abnv",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://fantastic.earth/users/abnv/followers"
],
"sensitive": false,
"atomUri": "https://fantastic.earth/users/abnv/statuses/113856008812394988",
"inReplyToAtomUri": null,
"conversation": "tag:fantastic.earth,2025-01-19:objectId=16710052:objectType=Conversation",
"content": "<p>Writing an <a href=\"https://fantastic.earth/tags/interpreter\" class=\"mention hashtag\" rel=\"tag\">#<span>interpreter</span></a> for <a href=\"https://fantastic.earth/tags/Brainfuck\" class=\"mention hashtag\" rel=\"tag\">#<span>Brainfuck</span></a> is almost a rite of passage for any programming language implementer, and it’s my turn now. In this post, I write not one but four Brainfuck <a href=\"https://fantastic.earth/tags/interpreters\" class=\"mention hashtag\" rel=\"tag\">#<span>interpreters</span></a> in <a href=\"https://fantastic.earth/tags/Haskell\" class=\"mention hashtag\" rel=\"tag\">#<span>Haskell</span></a>: <a href=\"https://abhinavsarkar.net/posts/brainfuck-interpreter/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">abhinavsarkar.net/posts/brainf</span><span class=\"invisible\">uck-interpreter/</span></a></p><p>Please boost for reach. If you have any questions or comments, please reply to this post.</p><p><a href=\"https://fantastic.earth/tags/ProgrammingLanguages\" class=\"mention hashtag\" rel=\"tag\">#<span>ProgrammingLanguages</span></a> <a href=\"https://fantastic.earth/tags/compilers\" class=\"mention hashtag\" rel=\"tag\">#<span>compilers</span></a> <a href=\"https://fantastic.earth/tags/LangDev\" class=\"mention hashtag\" rel=\"tag\">#<span>LangDev</span></a> <a href=\"https://fantastic.earth/tags/plt\" class=\"mention hashtag\" rel=\"tag\">#<span>plt</span></a> <a href=\"https://fantastic.earth/tags/blog\" class=\"mention hashtag\" rel=\"tag\">#<span>blog</span></a></p>",
"contentMap": {
"en": "<p>Writing an <a href=\"https://fantastic.earth/tags/interpreter\" class=\"mention hashtag\" rel=\"tag\">#<span>interpreter</span></a> for <a href=\"https://fantastic.earth/tags/Brainfuck\" class=\"mention hashtag\" rel=\"tag\">#<span>Brainfuck</span></a> is almost a rite of passage for any programming language implementer, and it’s my turn now. In this post, I write not one but four Brainfuck <a href=\"https://fantastic.earth/tags/interpreters\" class=\"mention hashtag\" rel=\"tag\">#<span>interpreters</span></a> in <a href=\"https://fantastic.earth/tags/Haskell\" class=\"mention hashtag\" rel=\"tag\">#<span>Haskell</span></a>: <a href=\"https://abhinavsarkar.net/posts/brainfuck-interpreter/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">abhinavsarkar.net/posts/brainf</span><span class=\"invisible\">uck-interpreter/</span></a></p><p>Please boost for reach. If you have any questions or comments, please reply to this post.</p><p><a href=\"https://fantastic.earth/tags/ProgrammingLanguages\" class=\"mention hashtag\" rel=\"tag\">#<span>ProgrammingLanguages</span></a> <a href=\"https://fantastic.earth/tags/compilers\" class=\"mention hashtag\" rel=\"tag\">#<span>compilers</span></a> <a href=\"https://fantastic.earth/tags/LangDev\" class=\"mention hashtag\" rel=\"tag\">#<span>LangDev</span></a> <a href=\"https://fantastic.earth/tags/plt\" class=\"mention hashtag\" rel=\"tag\">#<span>plt</span></a> <a href=\"https://fantastic.earth/tags/blog\" class=\"mention hashtag\" rel=\"tag\">#<span>blog</span></a></p>"
},
"updated": "2025-01-20T05:43:50Z",
"attachment": [],
"tag": [
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/interpreter",
"name": "#interpreter"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/brainfuck",
"name": "#brainfuck"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/interpreters",
"name": "#interpreters"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/haskell",
"name": "#haskell"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/programminglanguages",
"name": "#programminglanguages"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/compilers",
"name": "#compilers"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/langdev",
"name": "#langdev"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/plt",
"name": "#plt"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/blog",
"name": "#blog"
}
],
"replies": {
"id": "https://fantastic.earth/users/abnv/statuses/113856008812394988/replies",
"type": "Collection",
"first": {
"type": "CollectionPage",
"next": "https://fantastic.earth/users/abnv/statuses/113856008812394988/replies?only_other_accounts=true&page=true",
"partOf": "https://fantastic.earth/users/abnv/statuses/113856008812394988/replies",
"items": []
}
},
"likes": {
"id": "https://fantastic.earth/users/abnv/statuses/113856008812394988/likes",
"type": "Collection",
"totalItems": 19
},
"shares": {
"id": "https://fantastic.earth/users/abnv/statuses/113856008812394988/shares",
"type": "Collection",
"totalItems": 10
}
},
{
"id": "https://fantastic.earth/users/abnv/statuses/112542142040173291",
"type": "Note",
"summary": null,
"inReplyTo": null,
"published": "2024-06-01T15:46:46Z",
"url": "https://fantastic.earth/@abnv/112542142040173291",
"attributedTo": "https://fantastic.earth/users/abnv",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://fantastic.earth/users/abnv/followers"
],
"sensitive": false,
"atomUri": "https://fantastic.earth/users/abnv/statuses/112542142040173291",
"inReplyToAtomUri": null,
"conversation": "tag:fantastic.earth,2024-06-01:objectId=11629494:objectType=Conversation",
"content": "<p>JSON is probably the most used standard file format for storing and transmitting data on the Internet in recent times. It has a simple syntax with only four scalar data types and two composite data types. So, writing a parser for <a href=\"https://fantastic.earth/tags/JSON\" class=\"mention hashtag\" rel=\"tag\">#<span>JSON</span></a> is a great exercise for learning the basics of parsing.</p><p>That's exactly what I did: I wrote a JSON <a href=\"https://fantastic.earth/tags/parser\" class=\"mention hashtag\" rel=\"tag\">#<span>parser</span></a> from scratch in <a href=\"https://fantastic.earth/tags/Haskell\" class=\"mention hashtag\" rel=\"tag\">#<span>Haskell</span></a>. Read my <a href=\"https://fantastic.earth/tags/blog\" class=\"mention hashtag\" rel=\"tag\">#<span>blog</span></a> post to learn about basics of parsing, nuances of the JSON syntax, and parser combinators and property-based <a href=\"https://fantastic.earth/tags/testing\" class=\"mention hashtag\" rel=\"tag\">#<span>testing</span></a> in Haskell: <a href=\"https://abhinavsarkar.net/posts/json-parsing-from-scratch-in-haskell/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">abhinavsarkar.net/posts/json-p</span><span class=\"invisible\">arsing-from-scratch-in-haskell/</span></a></p><p><a href=\"https://fantastic.earth/tags/programming\" class=\"mention hashtag\" rel=\"tag\">#<span>programming</span></a> <a href=\"https://fantastic.earth/tags/functionalprogramming\" class=\"mention hashtag\" rel=\"tag\">#<span>functionalprogramming</span></a></p>",
"contentMap": {
"en": "<p>JSON is probably the most used standard file format for storing and transmitting data on the Internet in recent times. It has a simple syntax with only four scalar data types and two composite data types. So, writing a parser for <a href=\"https://fantastic.earth/tags/JSON\" class=\"mention hashtag\" rel=\"tag\">#<span>JSON</span></a> is a great exercise for learning the basics of parsing.</p><p>That's exactly what I did: I wrote a JSON <a href=\"https://fantastic.earth/tags/parser\" class=\"mention hashtag\" rel=\"tag\">#<span>parser</span></a> from scratch in <a href=\"https://fantastic.earth/tags/Haskell\" class=\"mention hashtag\" rel=\"tag\">#<span>Haskell</span></a>. Read my <a href=\"https://fantastic.earth/tags/blog\" class=\"mention hashtag\" rel=\"tag\">#<span>blog</span></a> post to learn about basics of parsing, nuances of the JSON syntax, and parser combinators and property-based <a href=\"https://fantastic.earth/tags/testing\" class=\"mention hashtag\" rel=\"tag\">#<span>testing</span></a> in Haskell: <a href=\"https://abhinavsarkar.net/posts/json-parsing-from-scratch-in-haskell/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">abhinavsarkar.net/posts/json-p</span><span class=\"invisible\">arsing-from-scratch-in-haskell/</span></a></p><p><a href=\"https://fantastic.earth/tags/programming\" class=\"mention hashtag\" rel=\"tag\">#<span>programming</span></a> <a href=\"https://fantastic.earth/tags/functionalprogramming\" class=\"mention hashtag\" rel=\"tag\">#<span>functionalprogramming</span></a></p>"
},
"updated": "2025-02-22T04:23:35Z",
"attachment": [
{
"type": "Document",
"mediaType": "image/png",
"url": "https://fantastic.earth/system/media_attachments/files/112/542/141/834/983/206/original/5d056cd79164e22a.png",
"name": "A transition diagram depicting the JSON syntax.",
"blurhash": "U6Ss50t7~qt7IUfQRjayIUfQRjfQM{fQRjay",
"width": 1018,
"height": 874
}
],
"tag": [
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/json",
"name": "#json"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/haskell",
"name": "#haskell"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/blog",
"name": "#blog"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/programming",
"name": "#programming"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/functionalprogramming",
"name": "#functionalprogramming"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/parser",
"name": "#parser"
},
{
"type": "Hashtag",
"href": "https://fantastic.earth/tags/testing",
"name": "#testing"
}
],
"replies": {
"id": "https://fantastic.earth/users/abnv/statuses/112542142040173291/replies",
"type": "Collection",
"first": {
"type": "CollectionPage",
"next": "https://fantastic.earth/users/abnv/statuses/112542142040173291/replies?only_other_accounts=true&page=true",
"partOf": "https://fantastic.earth/users/abnv/statuses/112542142040173291/replies",
"items": []
}
},
"likes": {
"id": "https://fantastic.earth/users/abnv/statuses/112542142040173291/likes",
"type": "Collection",
"totalItems": 36
},
"shares": {
"id": "https://fantastic.earth/users/abnv/statuses/112542142040173291/shares",
"type": "Collection",
"totalItems": 26
}
}
]
}