JSON便于解析和生产
JSON文件
{
“name”:“我饿哦”,
“age”:23,
“birthday”:“1998-2-2”,
“school”:“男鞋”,
“major”:["你好","欧尼"],
“isfemale”:true,
“car”:null
}
什么是JSON?
JSON是一种与开发语言无关的、轻量级的数据格式。全称:JavaScript Object Notation。
Json的数据结构:Object Array 基本类型:String, number, true, false ,null
基本类型:
sddsasdsdaasdadsd
JSON.
用 { } 标识的对象,也就是结构体(object)
用 [ ] 和 , 表示的数组(Array)
5种基本数据类型:其中数值类型统一用 number,不区分整型、实型
json是一种数据格式的标准和规范,与具体的开发语言无关。
起源于JavaScript,后被广泛应用,很多语言都有支持json的API
样例
Json :1,建立maven项目
2、建立 .pom 文件引用json依赖关系
3、建立 .json 文件
(建立 .json文件:1,使用{}包含键值对,key必须是string类型,value为任何基本类型(Object和Array)或者数据结构(string,nummber,true,false,null)
2, .json文件里是没有注释这一说的,如果要使用注释可以用“comment”:"这是注释")
4,创建java bean对象和从 .json文件中读取json
5,判断读取的JSON是否为null,返回数据
json中本身无注释, 可以使用 comment 来作为 注释功能
JSON 标准数据样式
json不支持任何类型的注释
key必须是string(字符串)类型
JSON总结: 三种方法; JSONObj wangxiaoer = new JSONObj(); // 第一种原生的 Map<String,Obj> wangxiaoer = new HashMap<String,Obj>(); //第二种hashMap Diaosi wangxiaoer = new Diaosi() //第三种 java bean
jsonObject.isNull(key) // key 字符串 判断文件中的数据是否为空。
解析json: pom.xml里一个依赖 commons-io 从文件中间读取json内容 // 声明这个文件 File file = new File(ReadJSONSample.class.getResource("/wangxiaoer.json").getFile()); //通过依赖 FileUtils String content = FileUtils.readFileToString(file); //通过 JSONObject 这个对象进行处理 JSONObject jsonObject = new JSONObject(content);
如何解释Json数据 JSONObject json=new JSONObject(content); System.out.println("姓名:"+json.getString("name")); Sytem.out.println("年龄:"+json.getInt("age")); System.out.println("是否有车:"+json.getBoolean("car")); JSONArray array=json.getJSONArray("major"); for(int I=0;i<array.length();I++) { String s=(String)array.get(I); System.outprintln("专业:"+(I+1)+m)); }
new JSONObject(对象实例); //不用toString();
转为JSON串的两种方法:
1.JSONObject j = new JSONObject j.put("",""); j.toString();
2.Map<String,Object> j = new HashMap<String,Object>();
j.put("",""); new JSONObject(j).toString();
put有替代的效果。第二次添加同一个key,value是会随之改变的
在JSON中没有整数,浮点数。统一用number表示
JSON开发移动端
GSON更适合服务端开发
集合类解析,major为List<String>类型
带日期转换,setDateFormat("你要设置的日期模板")
GSON可以正向生成反向解析,JSONObject只能解析成JSONObject不能解析Diaosi
GSON解析JSON文件中的JSON串: GSON.fromJson(JSON串文件,实体类.class);
通过Java Bean生成JSON时,JSON默认的生成方式会把所有属性全部生成以便提供value进行输出。可以在定义属性时在修饰符与属性类型中间添加transient关键字,在JSON生成中忽略这个属性避免被暴露给外界。
GsonBuilder类可以对JSON做一些其他操作,这样使用
GsonBuilder gsonBuilder=new GsonBuilder():
gsonBuilder.setPrettyPrinting() 使打印出来的json 格式化
GsonBuildersetFieldNamingStrategy(new FieldNamingStrategy(){
JSON解析过程中,可以在这里对属性进行一些修改的操作,
通过 return 你要返回的值 来实现
});
Gson gson=gsonBuilder.create()
然后再输出System.out.println(gson.toJson(Java bean对象或者JSONObject))
@SerializedName("你想要改成什么")
private String name;
在name前声明这样一个注解可以在转换成json数据格式之后更改name的值
GSON生成JSON的方法:
JSONObject中JSONObject.isNull(name)配合if语句与逻辑运算符可以避免调用getString(name)时他是个空的对象