Technical Critique of Fastjson: Performance, Design Flaws, and Lack of International Adoption
The article analyzes Fastjson's design choices, performance shortcuts, memory‑leak issues caused by substring handling, hard‑coded framework dependencies, and why its focus on speed over standards and quality has prevented it from gaining global popularity compared to libraries like Jackson.
Fastjson, a Chinese JSON parsing library, suffers from several technical shortcomings that hinder its international adoption.
First, beans with properties prefixed by '_' or '#' lose those fields during JSON serialization, making deserialization impossible; this issue was fixed after version 1.2.14.
Second, the library contains many hard‑coded checks for frameworks such as Spring, using class‑loader detection to decide processing paths, which leads to bugs when those classes are absent.
Third, Fastjson parses JSON by repeatedly using String.substring, which was fast in early JDKs because it avoided new object allocation, but caused memory leaks when large JSON strings were partially referenced; later JDK versions changed substring to always create a new string, eliminating the speed advantage.
Overall, Fastjson prioritizes speed through opportunistic shortcuts, resulting in poor code quality, incomplete adherence to JSON standards, and numerous hidden bugs, especially in bytecode manipulation and framework integration.
Compared with Jackson, Fastjson lacks many features and robustness, making direct comparisons unfair; Jackson offers broader functionality and better compliance.
Despite these flaws, the Fastjson team responds quickly to issues, which is commendable, but the community is encouraged to focus on solid standards and functional completeness rather than merely “fast” implementations.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Architect's Tech Stack
Java backend, microservices, distributed systems, containerized programming, and more.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
