JSON.toJSONString(data)出现"$ref": "$.data[14].teamSubEntity"的问题

使用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);
	}
}

猜你喜欢

转载自blog.csdn.net/CaptainJava/article/details/89915882