JSON初识
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集。
JSON结构简洁和清晰, 易于人阅读和编写,同时也易于机器解析和生成,相对于XML网络传输效率更高,使得 JSON 成为理想的数据交换语言。
JSON结构
JOSN基于两种数据结构:-
JSON是一系列键值对的集合,可被实现为对象,记录,结构字典,哈希表,相关数组。
-
一组有序值列表,在大多数语言中可用array,vector,list,sequece实现。
JSON格式
1.object
JSON中一个对象即为无序的键值对序列,以左大括号"{“开始,以右大括号”}"结束。
每个名字后跟随冒号“:”分隔,名称/值一逗号“,”分隔。
2.array
array是一个值得有序集合,以左左大括号“[”开始,右大括号“】”结束,值使用逗号“,”分隔。
3.value
JSON的值可以是以双引号“”包括的字符串,数字,true,false,null或是对象,数组,
嵌套结构。
4.string
字符串是零个或多个Unicode字符,包含在双引号内,或者使用转义字符,类似C,java的字符串。
5.number
JSON数字类似C和java的数字,只是不使用八进制数和16进制数。
GSON序列化
GSON可以将一个object序列化,下面我们看实例:
Gson gson = new Gson();
Employee e = new Employee("peter",30000,1999,06,07);
String s = gson.toJson(e);
System.out.println(s);
序列化得结果:
{“name”:“peter”,“salary”:30000.0,“hireDay”:{“year”:1999,“month”:6,“day”:7}}
GSON反序列化
下面将一下Json 反序列化:
String ss = "{\"name\":\"peter\",\"salary\":30000.0,\"hireDay\":{\"year\":1999,\"month\":6,\"day\":7}}";
Employee ee = gson.fromJson(ss, Employee.class);
System.out.println(ee.toString());
反序列化结果为:
name:peter, salary:30000.0, hireDay:1999-06-07
总结
了解GSON的基本概念,进行了序列化和反序列化的简单测试,后续要涉及一些比较复杂的处理,如JSON嵌套如何处理等。