Andy 胡

导航

Json1:使用gson解析、生成json

Json解析:

1.json第三方解析包:json-lib、gson、jackson、fastjson等
2.Google-gson只兼容jdk1.5版本以上;JSON-lib分别支持1.4和1.5
3.性能:Gson > Json-lib

 

包:gson-2.3.jar

特征:

  fromJson():Json-解析->对象(反序列化)
  toJson() :对象-生成->Json(序列化)

示例:

import com.google.gson.Gson;

public class TestGson {
    class Person {
        private String name;
        private int[] power;
        private Horse hs1;
        private Horse[] hs2;

        public Horse getHs1() {
            return hs1;
        }

        public void setHs1(Horse hs1) {
            this.hs1 = hs1;
        }

        public Horse[] getHs2() {
            return hs2;
        }

        public void setHs2(Horse[] hs2) {
            this.hs2 = hs2;
        }

        public int[] getPower() {
            return power;
        }

        public void setPower(int[] power) {
            this.power = power;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }

    class Horse {
        private String type;

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }
    }

    public static void main(String[] args) {
        String strJson = "{'name':'吕奉先','power':[100,30],'hs1':{'type':'赤兔'},'hs2':[{'type':'乌骓'},{'type':'黄标'}]}";

        Gson g = new Gson();
        
        // Json->对象
        Person p = g.fromJson(strJson, Person.class);
        System.out.println(p.name + ":" + p.power[1]);

        //对象->Json
        p.setName("关羽");
        String json = g.toJson(p);
        System.out.println(json);
    }
}

代码中json字符串的结构化视图:

运行结果:

吕奉先:30
{"name":"关羽","power":[100,30],"hs1":{"type":"赤兔"},"hs2":[{"type":"乌骓"},{"type":"黄标"}]}

 

posted on 2017-02-07 21:20  talkwah  阅读(229)  评论(0编辑  收藏  举报