java对象转json常见方法
-
在前端中配置好ajax的参数之后,前后台进行数据交互需要使用json对象方式传递。而在工程中未使用任何框架时则需要使用最底层的方法来实现java对象和json数据的转换。
-
问题发现:在前端请求能进入后台控制器时,控制器数据不能成功的到前端的success:function() 回调函数中,最后发现是json数据的原因。 此时使用的是JSONObject 或者 JSON.toJSONString(person) 等方法。
//有可能是这几种方法需要的包没有全部导入导致
String strInfo = JSON.toJSONString(person);
String string = JSONObject.toJSONString(person);
JSONObject jsonObject = new JSONObject();
jsonObject.put("name","tom");
- 问题解决 使用ObjectMapper
// 可能依赖的包较少
ObjectMapper objectMapper = new ObjectMapper();
String string = objectMapper.writeValueAsString(person);
- 常见转换方法
String string = JSON.getToJSONString("java 对象");
String string = JSONObject.toJSONString("java 对象");
// 最底层的 不需要依赖于其他框架相关的东西
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.writeValueAsString("java 对象");
//net.sf.json.JSONObject
JSONObject jsonObject = JSONObject.fromObject(riemannUser);
String jsonString = jsonObject.toString();
// alibaba 的 JSONObject
JSONObject jsonObject = new JSONObject();
jsonObject.put("name": "fenglei");
//列表集合转换成json代码
List list = new ArrayList();
list.add(“first”);
list.add(“second”);
JSONArray jsonArray2 = JSONArray.fromObject(list);
//Map集合转换成json代码
Map map = new HashMap();
map.put(“name”,“json”);
map.put(“bool”,Boolean.TRUE);
map.put(“int”,new Integer(1));
map.put(“arr”,new String [] {“a”,“b”});
(“func”,“function(i){return this.arr [i];}”);
JSONObject json = JSONObject.fromObject(map);
//Bean转换成json代码
JSONObject jsonObject = JSONObject.fromObject(new JsonBean());
//数组转换成json代码
boolean [] boolArray = new boolean [] {true,false,true};
JSONArray jsonArray1 = JSONArray.fromObject(boolArray);
//一般数据转换成json代码
JSONArray jsonArray3 = JSONArray.fromObject(“['json','is','easy']”);