<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Json on JsonKit Blog</title>
    <link>https://jsokit.com/blog/tags/json/</link>
    <description>Recent content in Json on JsonKit Blog</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>© 2025 JsonKit</copyright>
    <lastBuildDate>Tue, 12 May 2026 16:16:32 +0000</lastBuildDate>
    <atom:link href="https://jsokit.com/blog/tags/json/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>XML Formatter: Building a Parser with State Machine</title>
      <link>https://jsokit.com/blog/posts/xml-formatter-building-a-parser-with-state-machine/</link>
      <pubDate>Tue, 12 May 2026 16:16:32 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/xml-formatter-building-a-parser-with-state-machine/</guid>
      <description>XML Formatter: Building a Parser with State Machine Dealing with minified XML from third-party APIs is painful. Most online tools are either bloated or can&amp;rsquo;t handle special nodes like CDATA and comments. So I built my own. Here&amp;rsquo;s how it works.&#xA;The Core: No Native API for XML Unlike JSON where JSON.parse + JSON.stringify does the job in two lines, XML has no native formatting API. You have to parse the string yourself, identify tags, attributes, and text content, then reformat.</description>
    </item>
    <item>
      <title>Text Diff Tool: From Line-by-Line Comparison to Smart Matching Algorithms</title>
      <link>https://jsokit.com/blog/posts/text-diff-tool-from-line-by-line-comparison-to-smart-matching-algorithms/</link>
      <pubDate>Wed, 06 May 2026 15:17:41 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/text-diff-tool-from-line-by-line-comparison-to-smart-matching-algorithms/</guid>
      <description>Text Diff Tool: From Line-by-Line Comparison to Smart Matching Algorithms In code reviews, configuration file comparisons, and document version management, Text Diff is one of the most essential tools. Today we&amp;rsquo;ll dive into JsonKit&amp;rsquo;s text diff implementation to see how it efficiently identifies additions, deletions, and modifications.&#xA;Core Algorithm: Two Pointers + Lookahead Matching The classic diff algorithm is LCS (Longest Common Subsequence) with O(n×m) time complexity. However, for real-time comparison scenarios, we use a lightweight two-pointer algorithm with average complexity close to O(n).</description>
    </item>
    <item>
      <title>String Escape Implementation: From Regex Replacement to Unicode Handling</title>
      <link>https://jsokit.com/blog/posts/string-escape-implementation-from-regex-replacement-to-unicode-handling/</link>
      <pubDate>Sun, 03 May 2026 17:58:01 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/string-escape-implementation-from-regex-replacement-to-unicode-handling/</guid>
      <description>String Escape Implementation: From Regex Replacement to Unicode Handling Dealing with user input strings often causes problems when special characters break JSON parsing. Newlines, quotes, backslashes - they all need proper handling. So I built a string escape tool and here&amp;rsquo;s what I learned.&#xA;The Essence of Escaping Escaping means converting special characters into escape sequences. For example, the newline character \n (ASCII 10) becomes two characters: \ and n.</description>
    </item>
    <item>
      <title>SQL Formatter: From Regex to AST Parser Implementation</title>
      <link>https://jsokit.com/blog/posts/sql-formatter-from-regex-to-ast-parser-implementation/</link>
      <pubDate>Sun, 03 May 2026 15:58:01 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/sql-formatter-from-regex-to-ast-parser-implementation/</guid>
      <description>SQL Formatter: From Regex to AST Parser Implementation Recently during a code review, I came across a SQL statement compressed into a single line - hundreds of characters strung together, making it painful to read. I looked for an online tool to format it, but the output style didn&amp;rsquo;t match our team&amp;rsquo;s conventions. I decided to implement my own and document the approach.&#xA;Why SQL Formatting is Hard SQL formatting is much more complex than JSON formatting.</description>
    </item>
    <item>
      <title>Regex Cheatsheet: From Syntax Classification to Search Filtering</title>
      <link>https://jsokit.com/blog/posts/regex-cheatsheet-from-syntax-classification-to-search-filtering/</link>
      <pubDate>Mon, 27 Apr 2026 09:16:18 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/regex-cheatsheet-from-syntax-classification-to-search-filtering/</guid>
      <description>Regex Cheatsheet: From Syntax Classification to Search Filtering Regular expressions are essential for developers, but the syntax is complex and hard to memorize. A well-designed regex cheatsheet helps you find the syntax you need instantly. This article shares the implementation of JsonKit Regex Cheatsheet, from syntax classification to real-time search filtering.&#xA;Why You Need a Regex Cheatsheet Regex has hundreds of metacharacters, quantifiers, and assertions. It&amp;rsquo;s hard to remember them all.</description>
    </item>
    <item>
      <title>From Template Strings to Standard Practices: Building a README Generator</title>
      <link>https://jsokit.com/blog/posts/from-template-strings-to-standard-practices-building-a-readme-generator/</link>
      <pubDate>Sun, 26 Apr 2026 09:00:41 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/from-template-strings-to-standard-practices-building-a-readme-generator/</guid>
      <description>From Template Strings to Standard Practices: Building a README Generator Project is done. Now, how to write the README? Many developers (including myself) have been there: the code is solid, but the README is an afterthought. It&amp;rsquo;s not about lack of motivation—it&amp;rsquo;s the repetitive work of structuring sections, finding badges, formatting text.&#xA;Recently added a README generator to JsonKit. Here&amp;rsquo;s the technical breakdown.&#xA;The Standard README Structure Let&amp;rsquo;s look at what mature READMEs include:</description>
    </item>
    <item>
      <title>NPM Dependency Analysis: From package.json to Dependency Tree Visualization</title>
      <link>https://jsokit.com/blog/posts/npm-dependency-analysis-from-packagejson-to-dependency-tree-visualization/</link>
      <pubDate>Sat, 18 Apr 2026 17:11:50 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/npm-dependency-analysis-from-packagejson-to-dependency-tree-visualization/</guid>
      <description>NPM Dependency Analysis: From package.json to Dependency Tree Visualization I inherited a legacy project recently with 800MB of node_modules and 200+ dependencies in package.json. Every npm install took forever, and CI builds were painfully slow. I decided to build a tool to analyze the dependency situation, and here&amp;rsquo;s what I learned.&#xA;Semantic Versioning: The ^ and ~ Traps Version numbers in package.json look simple, but there are pitfalls:&#xA;{ &amp;#34;dependencies&amp;#34;: { &amp;#34;lodash&amp;#34;: &amp;#34;^4.</description>
    </item>
    <item>
      <title>Building a Perfect Maze Generator with DFS Recursive Backtracker</title>
      <link>https://jsokit.com/blog/posts/building-a-perfect-maze-generator-with-dfs-recursive-backtracker/</link>
      <pubDate>Tue, 14 Apr 2026 16:16:01 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/building-a-perfect-maze-generator-with-dfs-recursive-backtracker/</guid>
      <description>Building a Perfect Maze Generator with DFS Recursive Backtracker Maze generation is one of those problems that looks simple until you actually implement it. I recently built an online maze generator on JsonKit using the classic DFS recursive backtracker algorithm. Here&amp;rsquo;s how it works under the hood.&#xA;What is a &amp;ldquo;Perfect Maze&amp;rdquo;? In computational maze generation, a &amp;ldquo;perfect maze&amp;rdquo; has three properties:&#xA;Simply connected: exactly one path between any two cells Acyclic: no loops or cycles Fully connected: every cell is reachable Every wall in a perfect maze matters — removing any single wall creates a loop.</description>
    </item>
    <item>
      <title>Markdown Table Generator: From String Concatenation to Real-time Preview</title>
      <link>https://jsokit.com/blog/posts/markdown-table-generator-from-string-concatenation-to-real-time-preview/</link>
      <pubDate>Mon, 13 Apr 2026 10:13:56 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/markdown-table-generator-from-string-concatenation-to-real-time-preview/</guid>
      <description>Markdown Table Generator: From String Concatenation to Real-time Preview What&amp;rsquo;s the most annoying part of writing technical documentation? Tables. Markdown&amp;rsquo;s table syntax is simple but tedious. Manually typing | and --- gets error-prone quickly. Recently added a table generator to JsonKit, and here&amp;rsquo;s how it works.&#xA;Markdown Table Syntax Basics Let&amp;rsquo;s review the basic structure:&#xA;| Name | Age | City | |-------|-----|---------| | Alice | 28 | Beijing | | Bob | 35 | Shanghai| Three parts:</description>
    </item>
    <item>
      <title>PWA Essentials: Web App Manifest Configuration Guide and Generator Implementation</title>
      <link>https://jsokit.com/blog/posts/pwa-essentials-web-app-manifest-configuration-guide-and-generator-implementation/</link>
      <pubDate>Mon, 13 Apr 2026 09:14:03 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/pwa-essentials-web-app-manifest-configuration-guide-and-generator-implementation/</guid>
      <description>PWA Essentials: Web App Manifest Configuration Guide and Generator Implementation Recently converted a web app to PWA for app store submission. Web App Manifest seemed simple at first, but the details caught me off guard. Built a generator tool and documented the key configuration points.&#xA;What is Manifest and Why PWA Needs It? Simply put, manifest.json is the &amp;ldquo;ID card&amp;rdquo; for your PWA. The browser uses it to know:&#xA;What&amp;rsquo;s the app name What&amp;rsquo;s the launch icon Should it run fullscreen or in browser mode Theme color and background color Without manifest, your web app is just a regular webpage.</description>
    </item>
  </channel>
</rss>
