通过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))
GsonBuild构建Gson对象,可以设置美化json格式
GsonBuilder gsonBuilder=new GsonBuilder(); gsonBuilder.setPrettyPrinting(); Gson gson=gsonBuilder.create(); System.out.println(gson.toJson(user));
定制key字段
gsonBuilder.setFieldNamingStrategy(new FieldNamingStrategy() { @Override public String translateName(Field field) { if(field.getName().equals("username")){ return "NAME"; } return field.getName(); } });
GSON忽略生成字段
private transient String Ignore;
生成JSON数据——
GSON:可以输出JSON样式数据,可以使用GsonBuilder在构建JSON数据过程中,使用setPrettyPrinting()方法,然后就不使用new Gson对象而是通过gsonBuilder.create()来创建Gson对象。
GSON:可以使用GsonBuilder对象在解析时,使用setFieldNamingStrategy(回调函数)进行一些操作,例如:把Key变成大写,如果为其他还是默认值。
GSON:JavaBean的有些属性不想暴露在JSON数据中,通过JSON的默认生成方式会将所有属性生成key和value进行输出,而GSON通过声明一个类型为transient类型的属性,这样在JSON数据生成过程中就会忽略掉该属性。
使用Gson生成json 1.new Gson().toJson(Object) //将对象转化为json,返回类型为String 2.Gson GsonBuild.create(); //使用该方法可以设置构建的一些设置 2.1 如 gsonBuild.setPrettyPrinting();// 可以使打印出来的json 格式化 2.2 gsonBuild.setFieldNamingStrategy(new FieldNamingStrategy(){...}); 设置名字 3.@SerializedName("") 该注解可使生成的json名称和注解一致,而非变量名 4.使用 transient 修饰的变量,在生成json时,忽略该变量。
Java Bean中构建Json不暴露数据添加transient
transient 在bean字段上添加 ,在转换成Json对象时会被忽略
json生成过程当中忽略到一些属性2
json生成过程当中忽略到一些属性1
美化格式化输出
3