Json需要的类包
commons-httpclient-3.1.jar
commons-lang-2.4.jar
commons-logging-1.1.1.jar
json-lib-2.2.3-jdk13.jar
ezmorph-1.0.6.jar
commons-collections-3.2.1.jar
commons-beanutils.jar
一,Map转换成JSON格式
将Map,String类型转换成Json格式,主要调用JSONObject.fromObject(otherObject)方法,该方法返回JSONObject类型。
利用Json的类库可以直接将Map直接转换成Json的数据格式,用法如下:
Map map = new HashMap();
map.put("name","ChenXiao");
map.put("sex","male");
map.put("age",23);
String mapStr = map.toString();
System.out.println(mapStr);
此时的输出结果为:
{sex=male, age=23, name=ChenXiao}
然后将此Map转换成Json,代码如下:
//将Map转换成Json格式
JSONObject mapJson = JSONObject.fromObject(map); System.out.println("Json:"+mapJson);
System.out.println("JsonStr:"+mapJson.toString());
输出结果为:
Json:{"sex":"male","age":23,"name":"ChenXiao"}
JsonStr:{"sex":"male","age":23,"name":"ChenXiao"}
二,从Json中提取有用字段
从Json中提取字段,主要使用如下的方式:
String name = jsonObject.getString("name")
String name = mapJson.getString("name");
System.out.println(name);
Integer age = Integer.parseInt(mapJson.getString("age"));
System.out.println(age);
在Json中key-value中的value可以是其他非String类型,比如Integer等等,使用jsonObject.getString()得到的是String类型,然后按照自己的需求改变数据类型。
三,将普通String转换成Json
String类型只要按照Json的数据格式组织String的内容,就可以有效的转换成Json。
Json的一般数据格式如下:
{}作为Json的开始和结尾,一个属性值可以分为key和value,key一般为String类型,而value可以是很多类型,key和value之间用“:”分割,每个属性之间使用“,”作为分割;另外,value还可以是其他Json形式String的嵌套。
{"school":"BUPT"}
{"head":{"sex":"male","age":23,"name":"ChenXiao"},"end":{"school":"BUPT"}}
String str01 = new String("{\"school\":\"BUPT\"}");
JSONObject json01 = JSONObject.fromObject(str01);
System.out.println(json01.toString());
System.out.println(json01.getString("school"));
String merger01 = "{\"head\":"+mapJson.toString()+",\"end\":"+json01.toString()+"}";
JSONObject mergerJson01 = JSONObject.fromObject(merger01);
System.out.println(mergerJson01.toString());
String tmp01 = mergerJson01.getString("head");
JSONObject headJson = JSONObject.fromObject(tmp01);
System.out.println(headJson.getString("name"));