• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 一个现代化的JSON库Moshi针对Android和Java,jsonandroid

一个现代化的JSON库Moshi针对Android和Java,jsonandroid

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了moshi,moshi monsters,moshimonsters.com,moshi monster,moshi iglaze等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一个现代化的JSON库Moshi针对Android和Java,jsonandroid


Moshi

是一个现代化的JSON库针对Android和Java。它可以很容易地解析JSON成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);

它可以很容易地Java对象序列为JSON:


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);

内置型适配器

莫西已经内置了支持读取和写入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;
}

读写此JSON:


{
  "hidden_card": {
    "rank": "6",
    "suit": "SPADES"
  },
  "visible_cards": [
    {
      "rank": "4",
      "suit": "CLUBS"
    },
    {
      "rank": "A",
      "suit": "HEARTS"
    }
  ]
}

该Javadoc中编目完整的莫西API,我们将在下面探讨。

自定义类型的适配器

随着磨石,这是特别容易定制值的转换方式,并从JSON。A型适配器是有注释的方法,任何类@ToJson和@FromJson。

例如,磨石的一张扑克牌的默认编码为详细:JSON的定义在不同领域的点数和花色:{“等级”:“A”,“套装”:“心”}。随着类型的适配器,我们可以改变编码的东西更紧凑:“4H”为心中的四,“JD”为钻石插孔:


class CardAdapter {
  @ToJson String toJson(Card card) {
    return card.rank + card.suit.name().substring(0, 1);
  }

  @FromJson Card fromJson(String card) {
    if (card.length() != 2) throw new JsonDataException("Unknown card: " + card);

    char rank = card.charAt(0);
    switch (card.charAt(1)) {
      case 'C': return new Card(rank, Suit.CLUBS);
      case 'D': return new Card(rank, Suit.DIAMONDS);
      case 'H


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 一个现代化的JSON库Moshi针对Android和Java,jsonandroid

相关文章

  • 2017-05-26向量时钟算法简介
  • 2017-05-26手机影音2--软件架构分析,影音2--架构分析
  • 2017-05-26Charles Proxy 4.1.2 破解版,charles4.1.2
  • 2017-05-26android adb pull push,androidadb
  • 2017-05-26安卓当下最流行的吸顶效果的实现(转),安卓当下
  • 2017-05-26Linux内核系列—11.操作系统开发之ELF格式,linuxelf
  • 2017-05-225.2.4 Fragment实例精讲——底部导航栏+ViewPager滑动切换页面
  • 2017-05-227.2.2 Android JSON数据解析
  • 2017-05-26App启动页倒计时功能,app启动倒计时
  • 2017-05-26Glide,glideandroid

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android studio 插件安装 plugin
    • XListView,xlistview用法
    • Android JSBridge的原理与实现
    • Linux动态链接库加载失败一例
    • android 时间工具类
    • Android 性能分析工具之 TraceView 使用说明
    • Android5 Zygote 与 SystemServer 启动流程分析
    • 改变Activity启动时的默认动画,activity默认动画
    • 抽取的BaseFragment和LoadingPage,basefragment
    • React-Native系列Android——Touch事件原理及状态效果

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有