moshi
10,165
Stars
819
Forks
179
Watchers
115
Open Issues
Apache-2.0
许可证
Kotlin
语言
2014-08-09
创建时间
2026-11-10
最近更新
项目能做什么
面向 Kotlin 和 Java 的现代化 JSON 库。
来源:AI 基于仓库事实生成
· 内容以仓库实际 README 为准
使用说明 查看原始 README 原仓库文档
中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
Moshi
=====
Moshi is a modern JSON library for Android, Java and Kotlin. It makes it easy to parse JSON into Java and Kotlin
classes:
_Note: The Kotlin examples of this README assume use of either Kotlin code gen or `KotlinJsonAdapterFactory` for reflection. Plain Java-based reflection is unsupported on Kotlin classes._
<details>
<summary>Java</summary>
```java
String json = ...;
Moshi moshi = new Moshi.Builder().build();
JsonAdapter<BlackjackHand> jsonAdapter = moshi.adapter(BlackjackHand.class);
BlackjackHand blackjackHand = jsonAdapter.fromJson(json);
System.out.println(blackjackHand);
```
</details>
<details open>
<summary>Kotlin</summary>
```kotlin
val json: String = ...
val moshi: Moshi = Moshi.Builder().build()
val jsonAdapter: JsonAdapter<BlackjackHand> = moshi.adapter<BlackjackHand>()
val blackjackHand = jsonAdapter.fromJson(json)
println(blackjackHand)
```
</details>
And it can just as easily serialize Java or Kotlin objects as JSON:
<details>
<summary>Java</summary>
```java
BlackjackHand blackjackHand = new BlackjackHand(
new Card('6', SPADES),
Arrays.asList(new Card('4', CLUBS), new Card('A', HEARTS)));
Moshi moshi = new Moshi.Builder().build();
JsonAdapter<BlackjackHand> jsonAdapter = moshi.adapter(BlackjackHand.class);
String json = jsonAdapter.toJson(blackjackHand);
System.out.println(json);
```
</details>
<details open>
<summary>Kotlin</summary>
```kotlin
val blackjackHand = BlackjackHand(
Card('6', SPADES),
listOf(Card('4', CLUBS), Card('A', HEARTS))
)
val moshi: Moshi = Moshi.Builder().build()
val jsonAdapter: JsonAdapter<BlackjackHand> = moshi.adapter<BlackjackHand>()
val json: String = jsonAdapter.toJson(blackjackHand)
println(json)
```
</details>
### Built-in Type Adapters
Moshi has built-in support for reading and writing Java’s core data types:
* Primitives (int, float, char...) and their boxed counterparts (Integer, Float, Character...).
* Arrays, Collections, Lists, Sets, and Maps
* Strings
* Enums
It supports your model classes by writing them out field-by-field. In the example above Moshi uses
these classes:
<details>
<summary>Java</summary>
```java
class BlackjackHand {
public final Card hidden_card;
public final List<Card> visible_cards;
...
}
class Card {
public final char rank;
public final Suit suit;
...
}
enum Suit {
CLUBS, DIAMONDS, HEARTS, SPADES;
}
```
</details>
<details open>
<summary>Kotlin</summary>
```kotlin
class BlackjackHand(
val hidden_card: Card,
val visible_cards: List<Card>,
...
)
class Card(
val rank: Char,
val suit: Suit
...
)
enum class Suit {
CLUBS, DIAMONDS, HEARTS, SPADES;
}
```
</details>
to read and write this JSON:
```json
{
"hidden_card": {
"rank": "6",
"suit": "SPADES"
},
"visible_cards": [
{
"rank": "4",
"suit": "CLUBS"
},
{
"rank": "A",
"suit": "HEARTS"
}
]
}
```
The [Javadoc][javadoc] catalogs the complete Moshi API, which we e
阅读完整原文
项目深度分析 AI 生成
Moshi 代码自动生成与数据建模 IDE 插件(SaaS/付费插件)
| 产品构想 | 针对 Android/Kotlin 开发者提供 IntelliJ/Android Studio 付费插件,支持从 JSON、JSON Schema 或 OpenAPI 规范一键生成针对 Moshi 优化的 Kotlin 数据类、自定义 Adapter 及代码混淆规则。 |
| 核心功能 | JSON 一键转 Moshi Kotlin Data Class;自动处理空安全与默认值映射;自定义 TypeAdapter 模板生成;ProGuard/R8 混淆规则自动同步检查。 |
| 目标用户 | 使用 Moshi 的 Android 及 Kotlin 开发者、移动端研发团队。 |
| 难度/周期 | 中等 · 1-2 个月 · 成本:开发机器、JetBrains Marketplace 开发者账号费用(约几百元人民币/年)。 |
| 收费模式 | JetBrains Marketplace 订阅制或买断制付费插件(Freemium 模式)。 |
| 竞争风险 | 开源竞品多(如免费的 JsonToKotlinClass 插件),需在 Moshi 深度定制与高级特性(如多态适配、代码生成优化)上拉开差距。 |
| 依据 | 已验证事实 |
大型 Android 工程 JSON 迁移与架构重构咨询/自动化脚本服务
| 产品构想 | 帮助存量大型 Android 或 Java 项目从老旧的 Gson/Jackson 平滑迁移至 Moshi,提供静态分析工具扫描隐式反射风险、空安全违规并自动替换适配器。 |
| 核心功能 | Gson 语法树扫描与 Moshi 代码等效替换脚本;Kotlin 反射转 Moshi CodeGen 编译期优化评估;运行时空安全异常风险检测报告。 |
| 目标用户 | 维护大型遗留 Android 应用的企业技术团队、中大型移动互联网公司。 |
| 难度/周期 | 较高 · 2-3 个月 · 成本:人力时间成本,极低服务器成本。 |
| 收费模式 | 技术咨询与定制化脚本实施费用(按项目或工时计费)。 |
| 竞争风险 | B端获客周期长,依赖个人在 Android 社区的影响力与客户信任,难以规模化复购。 |
| 依据 | 尚需验证的假设 |
基于 Moshi 生态的移动端 API 契约校验与 Mock 平台
| 产品构想 | 结合 Moshi 的严格类型与空安全特性,提供前后端契约测试平台,前端可根据 Moshi 模型直接导出契约并在 CI/CD 中校验后端返回 JSON 是否合规。 |
| 核心功能 | 移动端 Moshi Data Class 逆向解析为契约规范;实时校验后端 Response 是否满足非空/字段类型约束;生成符合 Moshi 反序列化要求的 Mock 数据。 |
| 目标用户 | 前后端分离研发团队、移动端 QA 工程师、API 平台架构师。 |
| 难度/周期 | 高 · 3-6 个月 · 成本:轻量云服务器、域名、数据库运营成本(约 200-500 元/月)。 |
| 收费模式 | SaaS 订阅制(按席位或按每月校验请求量计费)。 |
| 竞争风险 | 市面上已有成熟的 API 管理平台(如 Postman、Apifox),单从客户端 JSON 解析库切入壁垒较薄。 |
| 依据 | AI推测 |
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心
竞品与相似项目 GitHub Search 真实检索
相似项目数据正在完善中,暂不展示(避免误导)
项目优势与风险
| 技术成熟度 | 创建于 2014-08-09,近 30 天仍在推送 |
| 社区活跃 | Star 10,165 / Fork 819 / Issue 115(数据支持,可自行核实) |
| 许可证 | Apache-2.0 |
| 主要风险 | 上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价 |
安装与使用
此项目未提供 Docker 镜像,安装步骤以原仓库 README 为准(涉及依赖安装与环境配置,对新手门槛较高)。