Json 是什么?
一开始在Android,对我来说它是一个有规则个字符串。
当我深入JavaScript后,感觉它越来越有意思,当成一个对象来用,属性、方法都能往里塞。
当接触SpringBoot并上手后,Json又成了url访问后操作数据库返回的数。
到MongoDb后,哪哪都是Json,然后总结:Json是一中非常好用的数据存储格式。
添加依赖:implementation 'com.google.code.gson:gson:2.2.4'
一、根据实体创建Json字符串
json生成.png1.准备一个实体类:Person:给出字段,get、set、toString方法省略
/**
* 姓名
*/
private String name;
/**
* 生日
*/
private String birthday;
/**
* 年龄
*/
private int age;
/**
* 男吗?
*/
private boolean isMan;
/**
* 主要技能
*/
private List<String> major;
2.使用JSONObject创建json字符串
private static String createJsonByBeanUseGson() {
Person toly = new Person();
toly.setAge(24);
toly.setName("toly");
toly.setBirthday("1994-03-28");
toly.setMan(false);
List<String> major = new ArrayList<>();
major.add("JavaScript");
major.add("Android");
major.add("SpringBoot");
toly.setMajor(major);
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setPrettyPrinting();//美化输出的json格式化
return gsonBuilder.create().toJson(toly);
}
3.可见Json是键值的形式存储数据
{
"age": 24,
"birthday": "1994-03-28",
"isMan": false,
"major": [
"JavaScript",
"Android",
"SpringBoot"
],
"name": "toly"
}
4.自定义键的名称
gsonBuilder.setFieldNamingStrategy(new FieldNamingStrategy() {
public String translateName(Field field) {
if (field.getName().equals("name")) {
return "NAME";//更改字段名
}
return "z-"+field.getName();
}
});
自定义键名.png
二、Gson解析Json
Json映射为Java实体
private static Person parseJsonUseGson(String Json) {
Gson gson = new Gson();
return gson.fromJson(Json, Person.class);
}
Json解析.png
关于日期
private Date birthday;//将日期改为Date类型
Json中使用字符串XXXX-XX-XX"形式,解析时可自动转换为Date格式
日期.png
三、Json与网络
号码归属地.pngJson最广泛的用途是在网络传输数据,具有体积小,JavaScript原生支持的主角光环
拿阿里的号码归属地查询的网站来说:https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=18715078974
返回内容就包括json,我们可以请求网络,获取数据,解析出来,在本地显示。
号码归属地查询项目:详见:
本文由张风捷特烈原创,转载请注明
更多安卓技术欢迎访问:https://www.jianshu.com/c/004f3fe34c94
张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com
你的喜欢与支持将是我最大的动力
网友评论