首页 > 代码库 > 数据格式汇总2-java
数据格式汇总2-java
二、数据格式间的相互转化
1. List集合转换成json代码
List list = newArrayList();list.add( "first" );list.add( "second" );JSONArray jsonArray2 =JSONArray.fromObject( list );
2. Map集合转换成json代码
Map map = newHashMap();map.put("name","json");map.put("bool",Boolean.TRUE);map.put("int", newInteger(1));map.put("arr", new String[] {"a", "b" });map.put("func", "function(i){return this.arr[i]; }");JSONObject json =JSONObject.fromObject(map);
3. Bean(javaBean)转换成json代码
JSONObject jsonObject =JSONObject.fromObject(new JsonBean());
4. 数组转换成json代码
boolean[] boolArray = newboolean[] { true, false, true };JSONArray jsonArray1 =JSONArray.fromObject(boolArray);
5. 一般数据转换成json代码
JSONArray jsonArray3 =JSONArray.fromObject("[‘json‘,‘is‘,‘easy‘]" );
6.json转String(将json对象转换成json格式字符串)
String jsonStr = jsonObject.toString();
UpdateTime--2016年12月26日14:16:24
7.josn对象转换成Map
/** * 将JSONObject转换成Map对象 * 方法一 * @param jsonObject * @return Map */private Map toMap(JSONObject jsonObject) { Map data = new HashMap(); Iterator it = jsonObject.keys(); // 遍历jsonObject数据,添加到Map对象 while (it.hasNext()) { String key = String.valueOf(it.next()); Object value = jsonObject.get(key); data.put(key, value); } return data;}
/** * 将JSONObject转换成Map对象 * 方法二 * @param jsonObject * @return Map */private Map toMap(JSONObject jsonObject) { Map data = new HashMap(); Iterator it = ; // 遍历jsonObject数据,添加到Map对象 while (it.hasNext()) { String key = String.valueOf(it.next()); Object value = jsonObject.get(key); data.put(key, value); } for (Iterator it = jsonObject.keys(); it.hasNext();) { String key = (String)it.next(); //值的类型如果不确定的话,用Object接收 String value =http://www.mamicode.com/ (String)jsonObject.get(key); data.put(key,value); } return data;}
8.Map与jsonObject通用方法
//移除掉指定元素transfromMap.remove("key");//添加指定元素transfromMap.put("key", value);//清空MaptransfromMap.clear();//判断Map对象是否为空transfromMap.isEmpty();
9.将Map转换成字符串
/*** 将Map转换成字符串*///方法一String mapStr = String.valueOf(map);//方法二String mapStr = map.toString();
10. Map.toString()后字符串转换回Map
/** * Map.toString()后字符串转换回Map * @param str Map字符串 * @return Map对象 */public static Map<String, String> mapStringToMap(String str) { str = str.substring(1, str.length() - 1); String[] strs = str.split(","); Map<String, String> map = new HashMap<>(); for (String string : strs) { String key = string.split("=")[0].trim(); String value = string.split("=")[1].trim(); map.put(key, value); } return map;}
例子:
map
{FHIGHPRICE_VILLLEVE=0, FSTATUS=1, FPROVLEVELLIMIT=1, FBEGINDATE=, FENDDATE=, FCLASSNAME=药品类, FITEMSIZE=, FHIGHPRICE_TOWNLEVEL=0, FCATALOGTYPE=, FVILLLEVELLIMIT=1, FID=400119, FCLIINHOSLIMIT=3, FHIGHPRICE_CITYLEVEL=0, FREMARK=, methodName=updateTDICTCHARGEITEM, FFORMS=, FITEMTYPE=0, FCLASSCODE=01, FGENERALCODE=, FRCODE=410000, FMEDICARE=2, FZJM=DSTN(YNS), FITEMCODE=W9999990019003y, FHIGHPRICE_COUNLEVEL=0, FDRUGTYPE=1, FITEMNAME=达沙替尼(依尼舒)(20mg×7粒), FTOWNLEVELLIMIT=1, FHIGHPRICE_PROVLEVEL=0, FCOUNLEVELLIMIT=1, FCOMPUTERATIO=1.0, FFEECODE=0101, FUNIT=, FORGLIMIT=0}
map转换成json:
jsonObject = JSONObject.fromObject(map);
json
{"FHIGHPRICE_VILLLEVE":"0","FSTATUS":"1","FPROVLEVELLIMIT":"1","FBEGINDATE":"","FENDDATE":"","FCLASSNAME":"药品类","FITEMSIZE":"","FHIGHPRICE_TOWNLEVEL":"0","FCATALOGTYPE":"","FVILLLEVELLIMIT":"1","FID":"400119","FCLIINHOSLIMIT":"3","FHIGHPRICE_CITYLEVEL":"0","FREMARK":"","methodName":"updateTDICTCHARGEITEM","FFORMS":"","FITEMTYPE":"0","FCLASSCODE":"01","FGENERALCODE":"","FRCODE":"410000","FMEDICARE":"2","FZJM":"DSTN(YNS)","FITEMCODE":"W9999990019003y","FHIGHPRICE_COUNLEVEL":"0","FDRUGTYPE":"1","FITEMNAME":"达沙替尼(依尼舒)(20mg×7粒)","FTOWNLEVELLIMIT":"1","FHIGHPRICE_PROVLEVEL":"0","FCOUNLEVELLIMIT":"1","FCOMPUTERATIO":1,"FFEECODE":"0101","FUNIT":"","FORGLIMIT":0}
json转换成String
final String MESSAGE= jsonObject.toString();
String
"{"FHIGHPRICE_VILLLEVE":"0","FSTATUS":"1","FPROVLEVELLIMIT":"1","FBEGINDATE":"","FENDDATE":"","FCLASSNAME":"药品类","FITEMSIZE":"","FHIGHPRICE_TOWNLEVEL":"0","FCATALOGTYPE":"","FVILLLEVELLIMIT":"1","FID":"400119","FCLIINHOSLIMIT":"3","FHIGHPRICE_CITYLEVEL":"0","FREMARK":"","methodName":"updateTDICTCHARGEITEM","FFORMS":"","FITEMTYPE":"0","FCLASSCODE":"01","FGENERALCODE":"","FRCODE":"410000","FMEDICARE":"2","FZJM":"DSTN(YNS)","FITEMCODE":"W9999990019003y","FHIGHPRICE_COUNLEVEL":"0","FDRUGTYPE":"1","FITEMNAME":"达沙替尼(依尼舒)(20mg×7粒)","FTOWNLEVELLIMIT":"1","FHIGHPRICE_PROVLEVEL":"0","FCOUNLEVELLIMIT":"1","FCOMPUTERATIO":1,"FFEECODE":"0101","FUNIT":"","FORGLIMIT":0}"
UpdateTime--2017年1月9日17:31:14
java基本数据类型、封装类间的相互转化
1.String 与 int的相互转化
/** * 将String类型的数字转换成int类型 */int r1 = Integer.parseInt("123");
/** * int转String *///使用String类的valueOf()方法String str1 = String.valueOf(3);//使用Integer类的toString()方法String str2 = Integer.toString(3);//拼接空字符String str3 = 3 + "";
2.String 与 Integer的相互转化
/** * 将String类型的数字转换成Integer类型 */Integer r2 = Integer.valueOf("123");
/** * Integer转String */Integer r = 1;String str4 = r.toString();
3.int 与 Integer的相互转化
/** * 将int类型的数字转换成Integer类型的三种方式 *///调用Integer的valueOf()方法Integer r3 = Integer.valueOf(123);//自动转换Integer r4 = 123;//实例化Integer对象Integer r5 = new Integer(123);
/** * Integer转int的两种方式 *///自动转换int r5 = r2;//调用Integer类的intValue()方法int r6 = r3.intValue();
小结:
a.八种基本数据类型与对应的封装类间可以直接进行相互转化
long l = 1;Long L = l;//long转Longlong l2 = L;//Long转long
b.八种基本数据类型转换成String类型
//方法一(用这种)调用String的valueOf()方法,String的valueOf()方法只适用于八种基本数据类型转换成String类型;String str = String.valueOf(123);//方法二调用封装类对应的toString()方法long l2 = 1;String str2 = Long.toString(l2);
c.八种基本数据类型的封装类转换成String类型
使用toString()方法可以转换成String类型;Long L2 = 1;String str3 = L2.toString();
d.String类型转换成八种基本数据类型
调用对应封装类的pase+“基本数据类型”long l3 = Long.parseLong("123");
e.String类型转换成八种基本数据类型的封装类
调用对应封装类的valueOf()方法Long L3 = Long.valueOf("123");
f.封装类之间无法直接相互转换
UpdateTime--2017年2月4日15:13:41
三、数据迭代
1.迭代List集合
List<Object> list = new ArrayList<Object>();list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);
/** * 方法一:使用forEach遍历(推荐使用) * 类型、别名、数组名 */for (Object li:list) { System.out.println(li);}/** * 使用迭代器 */Iterator<Object> it = list.iterator();while(it.hasNext()) { System.out.println(it.next());}
/** * 使用迭代器方法二 */for (Iterator<Object> ite=list.iterator();ite.hasNext();) { System.out.println(ite.next());}/** * 使用for循环 */System.out.println("使用for循环遍历");for (int i=0;i<list.size();i++) { System.out.println(list.get(i));}
2.迭代Map集合
Map<String,Object> map = new HashMap<String,Object>();map.put("语文", 1);map.put("数学", 2);map.put("英语", 3);map.put("历史", 4);map.put("政治", 5);map.put("生物", 6);map.put("生物", 7);map.put("化学", 8);
/** * 方法1:entrySet集合迭代 */Iterator iterator = map.entrySet().iterator();while (iterator.hasNext()) { Entry<String, Object> entry = iterator.next(); System.out.println(entry.getKey() + "=" + entry.getValue()); }
/** * 方法2:keySet集合迭代 */Iterator iterator = map.keySet().iterator();while (iterator.hasNext()) { //获取键 String key = iterator.next().toString();//或String key = (String)iterator.next(); //根据键获取值 Object value =http://www.mamicode.com/ map.get(key); System.out.println("键:"+ key + ",值:" + value);}
/** * 方法3:entrySet集合for-each循环(推荐使用) * 这种方式必须声明泛型类型: * a.bizData使用Map接收必须得声明泛型;b.for-each()里的Entry的泛型控制可有可无 * Map的泛型控制通常使用<String,Object> */Map<String, Object> bizData =http://www.mamicode.com/ dataBus.getBizData();for (Entry<String, Object> entry : bizData.entrySet()) { System.out.println(entry.getKey() + "=" + entry.getValue());}
/** * 方法4:keySet集合for-each循环 */for (String key:map.keySet()) { System.out.println(key + "=" + map.get(key));}
//只遍历键for (String key:map.keySet()) { System.out.println(key);}//只遍历值for (Object val:map.values()) { System.out.println(val);}
UpdateTime:2017年2月20日19:27:45
四、格式转换示例:
/** * 将JSONObject转换成字符串 * @description 转换格式:字段名+"|"+字段值+"$" * @param jsonObject * json对象 * @return 字符串 */private String JSONObjectToString(JSONObject jsonObject) { String str = ""; Iterator iterator = jsonObject.entrySet().iterator(); if (iterator.hasNext()) { Entry<String, Object> entry = (Entry<String, Object>) iterator.next(); str += entry.getKey() + "|" + entry.getValue() + "$"; } return str;}
/** * 将Map转换成字符串 * 格式:键+"|"+值+"$" * @param map * @return */private String MapToString(Map map) { String str = ""; Iterator iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Entry<String, Object> entry = (Entry<String, Object>) iterator.next(); str += entry.getKey() + "|" + entry.getValue() + "$"; } return str;}
五、格式转换出现的问题:
问题一:Map转换成String后,不能够直接转成JSON对象
举例:
String cookieMapStr = "{userPassword=ABCD_XYHYXKJ, userId=1, ForganizeName=%E4%B8%AD%E5%8D%8E%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD, userName=%E8%B6%85%E7%BA%A7%E7%AE%A1%E7%90%86%E5%91%98}";
由Map转换成String后,不能够直接转成JSON对象,否则会报错
JSONObject jsonCookie = JSONObject.fromObject(cookieMapStr);//这种方式是不对的
问题二:String.split("指定字符"),指定字符如果是特殊字符串需要使用"\\"转义
String拆分字符串
举例:
String cookieStr = "userId$1|userName$%E8%B6%85%E7%BA%A7%E7%AE%A1%E7%90%86%E5%91%98|home$index|";if (cookieStr.indexOf("userId") > -1) { String[] cooks = cookieStr.split("\\|"); for (String cook : cooks) { String[] str = cook.split("\\$");//或[$] if (str[0].equals("userId")) { return str[1]; } }}
数据格式汇总2-java