一 JSONArray和JSONOject的用法
JSONArray用法
1 解析字符串 JSONArray jsonarr = JSONArray.parseArray(str); 2 存值取值 (1) 存值 jsonarr.add(obj); (2) 取值 for(int i =0; i <= jsonarr.size(); i++){ jsonarr[i].get(key); } 3 格式: 本质是数组, 必须是数组格式, 用 [ ] 包裹数据 格式: [{key:value},{key:value}... ] ["str1","str2","str3",...]
JSONObject的用法
1 解析字符串 JSONObject obj = JSONArray.parseObject(str); 2 存值取值 (1) 存值 obj.put("key", key); obj.put("value", value); (2) 取值 value = obj.get(key); 3 格式: 本质是对象, 用 {} 表示 格式: {key:value}
案例
public class JsonTest {
public static void main(String[] args) {
String s1 = "[]"; String s2 = "[{}]"; String s3 = ""; String s4 = null; String s5 = "[{\"functionId\":\"14\",\"needBuy\":false,\"functionName\":\"功能1\"},{\"functionId\":\"17\",\"needBuy\":false,\"functionName\":\"功能2\"}]"; String s6 = "{}"; JSONArray jsonarr1 = JSONArray.parseArray(s1); JSONArray jsonarr2 = JSONArray.parseArray(s2); JSONArray jsonarr3 = JSONArray.parseArray(s3); JSONArray jsonarr4 = JSONArray.parseArray(s4); JSONArray jsonarr5 = JSONArray.parseArray(s5); //JSONArray jsonarr6 = JSONArray.parseArray(s6); Object obj1 = JSONObject.parse(s1); Object obj2 = JSONObject.parse(s2); Object obj3 = JSONObject.parse(s3); Object obj4 = JSONObject.parse(s4); Object obj5 = JSONObject.parse(s5); Object obj6 = JSONObject.parse(s6); System.out.println("s1 = " + jsonarr1); System.out.println("s2 = " + jsonarr2); System.out.println("s3 = " + jsonarr3); System.out.println("s4 = " + jsonarr4); System.out.println("s5 = " + jsonarr5); //System.out.println("s6 = " + jsonarr6); System.out.println(""); System.out.println("obj1 = " + obj1); System.out.println("obj2 = " + obj2); System.out.println("obj3 = " + obj3); System.out.println("obj4 = " + obj4); System.out.println("obj5 = " + obj5); System.out.println("obj6 = " + obj6); 答案: 打印第6条因格式不对, 会报错, 所以注释了 s1 = [] s2 = [{
}] s3 = null s4 = null s5 = [{
"functionId":"14","needBuy":false,"functionName":"功能1"},{
"functionId":"17","needBuy":false,"functionName":"功能2"}] //Exception in thread "main" com.alibaba.fastjson.JSONExcept obj1 = [] obj2 = [{
}] obj3 = null obj4 = null obj5 = [{
"functionId":"14","needBuy":false,"functionName":"功能1"},{
"functionId":"17","needBuy":false,"functionName":"功能2"}] obj6 = {
}
总结
只要格式正确, 空字符串和null都是可以解析的
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233423.html原文链接:https://javaforall.net