如何使用Java在SQL Server中持久化大型JSON字符串
我有一个非常大的JSON字符串,我需要存储在数据中,非常大的意思是超过48000个字符,我使用SQL server将此数据存储在text
类型的字段中,然后我尝试将其更改为nvarchar(max)
,但似乎仍然没有区别
当我在数据库中插入40000个字符后,字符串会被截断。我使用hibernate将数据存储在该特定列中,并将其映射为java.lang.String
下面是我从object转换为jsonobject的代码
public static JSONObject toJSONListWithKey(List<?> object, String key) {
JSONObject jsonObject = new JSONObject();
JSONArray jsonArray = new JSONArray();
Gson gson = new Gson();
try {
for (Object object2 : object) {
jsonArray.put(new JSONObject(gson.toJson(object2)));
}
if (null != key || !"".equals(key)) {
jsonObject.put(key, jsonArray);
} else {
jsonObject = new JSONObject(jsonArray.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
return jsonObject;
}
下面是我在数据库中存储它的方式
JSONObject jsonObject = JSONUtils.toJSONListWithKey(reports,"reports");
ins.setReportJson(jsonObject.toString());
instanceDAO.update(ins);
有谁能建议/指导我哪里出了问题,如果这种方法不正确,我应该采取什么措施
共 (0) 个答案