java web开发中,往往会用到 json,偶尔也需要XML 。因此需要与Map/List/JavaBean进行转换
import java.util.Map;
import net.sf.json.JSON;
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;
String xml;//XML 字符串数据
XMLSerializer xmlSerializer = new XMLSerializer();
JSON json = xmlSerializer.read(xml);//可能是JSONObject或JSONArray
String jsonStr = json.toString();//json字符串
if(json.isArray()){
JSONArray jArr = JSONArray.fromObject(JSON);
}else{
JSONObject jObj = JSONObject.fromObject(JSON);
}
已经完成 XML与JSON之间的转换。
至于 JSON 与 Map/List/JavaBean之间转换,据说com.alibaba.fastjson 阿里巴巴的 工具性能最佳
import com.alibaba.fastjson.JSON;
String s = "{\"userName\":\"demo\",\"password\":\"123456\"}";//JSONObject字符串
String arrStr = "[{\"userName\":\"demo1\",\"password\":\"123456\"},{\"userName\":\"demo2\",\"password\":\"456123\"}]";//JSONArray字符串
User u = JSON.parseObject(str, User.class);
String jsonstr = JSON.toJSONString(u, true);//true:格式化,false是压缩模式
JSONObject object = JSON.parseObject(s);
JSONArray array=JSONArray.parseArray(arrStr);
上面是 JSONObject/JSONArray与 JavaBean转换。
Map/List转换也一样。
其实 JSONObject/JSONArray 与 Map/List API差不多,并不是特别需要转换。个人习惯不同吧