在微信开发中经常需要传送json数据,这时候可以构建相应的对象以生成需要的json数据,举例如下:
import com.fasterxml.jackson.databind.ObjectMapper;
/*
* 将对象转换为json数据
*
* 以微信sdk生成带参数的二维码为例,生成如下json数据
* {"expire_seconds": 604800, "action_name": "QR_SCENE",
* "action_info": {"scene": {"scene_id": 123}}}
*
*/
public class jsonTest {
public static void main(String[] args) throws Exception {
//调用对象,增加信息
Scene scene = new Scene();
scene.setScene_id("123");
Action_info action_info = new Action_info();
action_info.setScene(scene);
JsonF jsonF = new JsonF();
jsonF.setExpire_seconds(604800);
jsonF.setAction_name("QR_SCENE");
jsonF.setAction_info(action_info);
ObjectMapper mapper = new ObjectMapper();
String string = mapper.writeValueAsString(jsonF);
System.out.println(string);
}
}
/**
*
* 生成json数据的对象
*/
class JsonF{
private int expire_seconds ; //有效期
private String action_name; //二维码类型
private Action_info action_info; //场景信息
public String getAction_name() {
return action_name;
}
public void setAction_name(String action_name) {
this.action_name = action_name;
}
public Action_info getAction_info() {
return action_info;
}
public void setAction_info(Action_info action_info) {
this.action_info = action_info;
}
public int getExpire_seconds() {
return expire_seconds;
}
public void setExpire_seconds(int expire_seconds) {
this.expire_seconds = expire_seconds;
}
}
/**
* 场景信息类
* @author Lee
*
*/
class Action_info{
private Scene scene;
public Scene getScene() {
return scene;
}
public void setScene(Scene scene) {
this.scene = scene;
}
}
/**
*
* @author Lee
*
*/
class Scene{
private String scene_id;
public String getScene_id() {
return scene_id;
}
public void setScene_id(String scene_id) {
this.scene_id = scene_id;
}
}
输出结果:
注:本例需要jackson-databind-2.8.2.jar报支持