model(javabean)与json相互转换
文章声明:model对象与json之间互转网上有很多方法,此处只记录一种常用的,并且比较安全便捷的转换方法:使用gson。
一、model转换json
1、 首先创建一个model实体类;
package cn.com.sdm.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Model {
public Model(String field, String uri, String type, String fixed) {
super();
this.field = field;
this.uri = uri;
this.type = type;
this.fixed = fixed;
}
@Expose
@SerializedName("Field")
private String field;
@Expose
@SerializedName("URI")
private String uri;
@Expose
@SerializedName("Type")
private String type;
@Expose
@SerializedName("Fixed")
private String fixed;
public String getField() {
return field;
}
public void setField(String field) {
this.field = field;
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getFixed() {
return fixed;
}
public void setFixed(String fixed) {
this.fixed = fixed;
}
@Override
public String toString() {
return "BodyModel [field=" + field + ", URI=" + uri + ", Type=" + type + "]";
}
}
2、写测试类
package cn.com.sdm.test;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class Test {
public static void main(String[] args) {
//创建model对象,并赋值
Model model = new Model("家", "北京市昌平区", "工作单位", "你猜");
//创建gson对象
Gson gson = new GsonBuilder().setPrettyPrinting().create();
//直接将model转换为json
String jsonForModel = gson.toJson(model);
System.out.println(jsonForModel);
}
}
//下面是测试结果
{
"Field": "家",
"URI": "北京市昌平区",
"Type": "工作单位",
"Fixed": "你猜"
}
二、json转model
1、直接上测试类
package cn.com.sdm.test;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class Test {
public static void main(String[] args) {
//创建model对象,并赋值
Model model = new Model("家", "北京市昌平区", "工作单位", "你猜");
//创建gson对象
Gson gson = new GsonBuilder().setPrettyPrinting().create();
//json转换model对象
Model modelfromJson = gson.fromJson(jsonForModel, Model.class);
System.out.println(modelfromJson);
}
}
//下面是测试结果
BodyModel [field=家, URI=北京市昌平区, Type=工作单位]
如果需要将,model转换成json格式后,输出为文件流,那么可以进行以下操作:
//将json对象放入流中输出;
ByteArrayInputStream bas = new ByteArrayInputStream(gson.toJson(model).getBytes());
****值得一提的是,此gson有许多注解的方法可以使用,有兴趣的朋友可以多测试玩玩。