Json 详解

来源:互联网 发布:js 触发div事件 编辑:程序博客网 时间:2024/06/06 07:06

1、Json

Json起源于1999年的JS语言规范ECMA262的一个子集,后来到了2003年,作为一种新的数据格式ECMA404发布,到了2006年,作为rfc4627发布,这时的规范增加到了18页。
Json的应用非常广泛,截至目前共有100多种语言下的Json库。

2、优点与缺点

2.1、结构

  "NAME": "lyl",  "AGE": 21,  "ID": 5,  "BIRTHDAY": "1945-12-12",  "SCHOOL": "sunshine school",  "SKILL": [    "吃饭",    "挖掘机"  ],  "COMMENT": "this is a comment."}

2.2、优点

  • 基于纯文本,易于阅读。
  • 规范简单,容易处理,开箱即用。
  • 平台无关性,容易实现不同语言的处理类库,可以作为多个不同异构系统之间的数据传输格式协议,特别是在HTTP/REST下的数据格式。
  • 2.3、缺点

  • 性能一般,文本数据的二进制文件较大,传输和解析上影响性能。
  • 3、Gson

    目前使用最多的也是最好用的Json解析就是Google的Gson了。
    你需要去下载最新的Gson的jar包。
    下载gson-2.2.2.jar

    3.1、Gson的jar包解析

  • annotations
  • interal
  • reflect
  • stream
  • 3.2、Gson支持

    jar包中主要有以下几个:

  • 提供简单的toJson()和fromJson()方法,可以将Java对象转换为Json,反之亦然
  • 广泛的Java泛型支持
  • 支持任意复杂的对象(具有深层继承层次结构和泛型类型的广泛使用)
  • 允许将先前存在的不可修改对象转换为Json或从Json转换
  • 3.3、简单的Demo

    Java对象转换为Json数据格式的Java对象类
    可以看出Gson中添加了许多有意思的东西,对编程的规范有很大的帮助,更详细的就要靠自己发掘了。

    package com.vgbh.Bean;import com.google.gson.annotations.SerializedName;public class People {    @SerializedName("NAME")//在输出时会将属性的名称进行更换    private String name ;    @SerializedName("AGE")    private int age ;    @SerializedName("ID")    private int id ;    @SerializedName("BIRTHDAY")    private String birthday ;    @SerializedName("SCHOOL")    private String school ;    @SerializedName("SKILL")    private String[] skill ;    @SerializedName("COMMENT")    private String comment ;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getBirthday() {        return birthday;    }    public void setBirthday(String birthday) {        this.birthday = birthday;    }    public String getSchool() {        return school;    }    public void setSchool(String school) {        this.school = school;    }    public String[] getSkill() {        return skill;    }    public void setSkill(String[] skill) {        this.skill = skill;    }    public String getComment() {        return comment;    }    public void setComment(String comment) {        this.comment = comment;    }}

    Demo中含有对toJson()和fromJson()方法的简单实用,

    package com.vgbh.gson;import java.io.File;import com.google.gson.Gson;import com.google.gson.GsonBuilder;import com.vgbh.Bean.People;public class GsonTest {    public static void main(String[] args) {        new GsonTest().createGson();    }    public void createGson () {        People lyl = new People();        lyl.setName("lyl");        lyl.setAge(21);        lyl.setSkill(new String[]{"炒菜", "挖掘机"});        lyl.setBirthday("1996-12-12");        lyl.setComment("this is a comment.");        lyl.setId(5);        lyl.setSchool("sunshine school");        GsonBuilder builder = new GsonBuilder();//工厂模式        builder.setPrettyPrinting();        Gson gson = builder.create();        System.out.println(gson.toJson(lyl));    }    public void analisisGson () {        File file = new File(GsonTest.class.getResource("/lyl.json").getFile());        String content = file.toString();        Gson gson = new Gson();        People lyl = gson.fromJson(content, People.class);        System.out.println(lyl);    }}

    有问题的可以联系我的邮箱。

    原创粉丝点击
    热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 我的中国银行卡在异地被冻结怎么办 qq密保号码换了验证不了怎么办 qq登陆需要密保手机验证怎么办 微信漂流瓶被投诉收不到回复怎么办 电视的屏幕出现三条黑线怎么办 付了定金的房子不想要了怎么办 顾客刚买了东西就退怎么办 飞机票买了但是没有报团怎么办 日本寄东西回来深圳海关扣了怎么办 xp框架安装模块后无限重启怎么办 手机百度云下载的文件不见了怎么办 百度云手机号换了文件不见了怎么办 好劵app提现密码忘了要怎么办 微信上买的衣服不给退货怎么办 在微信上买的衣服不给退货怎么办 贴贴纸的地方出现色差了怎么办 贴在玻璃上的贴纸撕掉后有胶怎么办 魅族手机部分时间上划失效怎么办 别人电脑上c盘文件无权访问怎么办 网络已连接但上不了网怎么办 asp复选框选中的有重复值怎么办 邮件在邮递中出现损坏怎么办呢? 爱彩彩票资金密码忘记了怎么办 注册彩票网站忘了资金密码怎么办 电车电瓶加水后电压变低怎么办 电动车电瓶四块电池坏了一块怎么办 把小孩的玩具修坏了怎么办 电动车插头太紧了插不到底怎么办 宜家沙发不能更换布套怎么办 苹果官网买的无线充坏了怎么办 苹果官网上买的耳机坏了怎么办 led灯开关关掉了闪烁是怎么办 我朋友借的网贷光给我打电话怎么办 电脑上的文件变成了图片查看怎么办 外卖店打印机纸卡住打不开了怎么办 微信撤回图片留下一堆代码怎么办 拼多多砍价免费拿砍不到0元怎么办 一岁三个月宝宝老足拉肚子怎么办丶 想打好关系送礼发红包不敢收怎么办 我在相亲市场太受欢迎了怎么办小说 有人报警说我诈骗警察说立案怎么办