使用alibaba.fastjson中使用JSON.toJSONString(data)转字符串是,结果中出现 $ref": "$.data[i].obeject的问题
当前fastjson.version 1.2.47 其他版本未测试
网上查的大侠说,问题的原因应该是:
使用FastJson的JSONArray类型作为返回数据,当像JSONArray对象中添加JSONObject对象,而JSONObject对象中包含相同的节点数据时,FastJson会防止返回数据栈溢出的问题,自动将JSONArray中相同的节点数据使用引用方式代替
改成JSON.toJSON即可,但是返回值就不是String了而是Object。
还是改回Gson吧 呵呵,Gson使用:
Gson gson = new Gson();
String s = gson.toJson(obj);
工具类:
import com.google.gson.Gson;
/**
*
* @author groot
*
*/
public class GsonUtil {
/**
* 转换Json字符串为对象
* @param json
* @param
* @return
*/
public static <T> T getObjectFromJsonStr(String json, Class<T> classOfT) {
Gson g = new Gson();
return g.fromJson(json, classOfT);
}
/**
* @Author groot
* @Date 2019/5/7 10:29
* @Param [obj]
* @return java.lang.String
* @Description Object 转json str
**/
public static String getJsonStringFromObject(Object obj) {
Gson gson = new Gson();
return gson.toJson(obj);
}
}