json 详解
/**
* 使用第三方工具,将JavaBean对象/List或Set或Map对象转成JSON
*/
@Test
public void test01(){
User user = new User("张三",13,"男");
JSONArray jSONArray = JSONArray.fromObject(user); //将java对象转换成json数组
System.out.println( jSONArray.toString()); //[{"age":13,"name":"张三","sex":"男"}]
}
@Test
public void test02(){
List<User> cityList = new ArrayList<User>();
cityList.add(new User("张三",13,"男"));
cityList.add(new User("王五",19,"男"));
JSONArray jSONArray = JSONArray.fromObject(cityList); //将集合转换成json数组
String jsonJAVA = jSONArray.toString();
System.out.println(jsonJAVA); //[{"age":13,"name":"张三","sex":"男"},{"age":19,"name":"王五","sex":"男"}]
}
@Test
public void test03(){
List<User> cityList = new ArrayList<User>();
cityList.add(new User("张三",13,"男"));
cityList.add(new User("王五",19,"男"));
Map<String,Object> map = new LinkedHashMap<String,Object>();
map.put("total",cityList.size());//表示集合的长度
map.put("rows",cityList);//rows表示集合
JSONArray jSONArray = JSONArray.fromObject(map);
String jsonJAVA = jSONArray.toString();
System.out.println(jsonJAVA); //[{"total":2,"rows":[{"age":13,"name":"张三","sex":"男"},{"age":19,"name":"王五","sex":"男"}]}]
jsonJAVA = jsonJAVA.substring(1,jsonJAVA.length()-1);
System.out.println(jsonJAVA); //{"total":2,"rows":[{"age":13,"name":"张三","sex":"男"},{"age":19,"name":"王五","sex":"男"}]}
}
/*
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
*/
@Test
public void test04(){
//从字符串解析JSON对象
JSONObject obj = JSON.parseObject("{\"runoob\":\"菜鸟教程\"}");
System.out.println(obj); //{"runoob":"菜鸟教程"}
//从字符串解析JSON数组
JSONArray arr = JSON.parseArray("[\"菜鸟教程\",\"RUNOOB\"]\n");
System.out.println(arr); // ["菜鸟教程","RUNOOB"]
//将JSON对象转化为字符串
String objStr = JSON.toJSONString(obj);
System.out.println(objStr); //{"runoob":"菜鸟教程"}
//将JSON对象转化为字符串
String arrStr = JSON.toJSONString(arr);
System.out.println(arrStr); //["菜鸟教程","RUNOOB"]
}
1. JSONObject创建的方法:
//创建JsonObject第一种方法
JSONObject jsonObject = new JSONObject();
jsonObject.put("UserName", "kobi");
jsonObject.put("age", "34");
jsonObject.put("workIn", "ALI");
System.out.println("jsonObject1:" + jsonObject); //jsonObject1:{"UserName":"kobi","age":"34","workIn":"ALI"}
//创建JsonObject第二种方法
HashMap<String, String> hashMap = new HashMap<String, String>();
hashMap.put("UserName", "ZHULI");
hashMap.put("age", "30");
hashMap.put("workIn", "ALI");
System.out.println("jsonObject2:" + JSONObject.fromObject(hashMap)); //jsonObject2:{"UserName":"ZHULI","workIn":"ALI","age":"30"}
2.JSONArray创建的方法:
//创建一个JsonArray方法1
JSONArray jsonArray = new JSONArray();
jsonArray.add(0, "kobi");
jsonArray.add(1, "34");
jsonArray.add(2, "ALI");
System.out.println("jsonArray1:" + jsonArray); //jsonArray1:["kobi","34","ALI"]
//创建JsonArray方法2
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("kobi");
arrayList.add("34");
arrayList.add("ALI");
System.out.println("jsonArray2:" + JSONArray.fromObject(arrayList)); //jsonArray2:["kobi","34","ALI"]
3.解析JSON字符串:
String jsonString = "{\"UserName\":\"kobi\",\"age\":\"34\",\"workIn\":\"ALI\",\"Array\":[\"kobi\",\"34\",\"ALI\"]}";
//将Json字符串转为java对象
JSONObject obj = JSONObject.fromObject(jsonString);
System.out.println("obj:"+obj); //obj:{"UserName":"kobi","age":"34","workIn":"ALI","Array":["kobi","34","ALI"]}
//获取Object中的UserName
if (obj.has("UserName")) {
System.out.println("UserName:" + obj.getString("UserName")); //UserName:kobi
}
//获取ArrayObject
if (obj.has("Array")) {
JSONArray transitListArray = obj.getJSONArray("Array");
for (int i = 0; i < transitListArray.size(); i++) {
System.out.print("Array:" + transitListArray.getString(i) + " "); //Array:kobi Array:34 Array:ALI
}
}
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
<version>1.0.6</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>

浙公网安备 33010602011771号