拿FastJSON下的類爲例,
JSON類裏有下面這個方法,用來做JSON字符串輸出
public abstract class JSON implements JSONStreamAware, JSONAware {
......
public static String toJSONString(Object object, SerializerFeature... features) {
// dosomething
}
......
}
通過可以這樣直接調用:
String resultJSON = JSON.toJSONString(jsonObject,SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteDateUseDateFormat)
這時問題來了,現在需要在JMeter裏格式化輸出JSON,也這樣寫入BeanShell
prev.setResponseData(JSON.toJSONString(jsonObject,SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteDateUseDateFormat));
執行後就出錯:Not found class "com.alibaba.fastjson.JSON"。
如果不看這個錯誤以爲是沒導入JSON類,但是事實上我們已經加入了import com.alibaba.fastjson.JSON這一行,不然前面幾步用到JSON解析就無法執行。
解決方法:
將toJSONString需要的不定參數換成數組後傳入就完成了,修改後的BeanShell代碼如下:
SerializerFeature[] features = new SerializerFeature[3];
features[0]=SerializerFeature.PrettyFormat;
features[1]=SerializerFeature.WriteMapNullValue;
features[2]=SerializerFeature.WriteDateUseDateFormat;
prev.setResponseData(JSON.toJSONString(jsonObject, features));
修改後再執行就通過了,還可以看到輸出結果裏整齊的JSON字符串。