JSON物件中的JSONObject和JSONArray以及與Map、String、陣列的轉化
JSON物件中的JSONObject和JSONArray以及與Map、String、陣列的轉化
本文一句的寫作思路:由簡入繁
一、簡單模式
1、建立JSONObject物件
JSONObject json=new JSONObject();
json.put("name", "小明");
json.put("age", "10");
System.out.println(json.toString());
控制檯列印:
{"age":"10","name":"小明"}
2、建立JSONArray物件
JSONArray ja=new JSONArray();
ja.add("1");
ja.add("2");
ja.add("3");
ja.add(3,"4");
System.out.println(ja.toString());
控制檯列印:
["1","2","3","4"]
二、進階模式
·難點就是轉移字元 " 寫成 \" 比如 "name" 就寫成 \"name\",但是 { [ ; 這些字元不需要轉義,試試就知道了
1、String型別的字串轉化為JSONObject物件
String str="{\"name\":\"小明\",\"年齡\":\"10\"}";
JSONObject json=JSONObject.fromObject(str);
System.out.println(json.toString());
System.out.println(json.get("name"));
控制檯列印:
{"name":"小明","年齡":"10"}
小明
2、String型別的字串轉化為JSONArray物件
String str="[\"1\",\"2\",\"3\",\"4\"]";
JSONArray ja=JSONArray.fromObject(str);
System.out.println(ja.get(0));
控制檯列印:
1
區分
String a[]={"1","2","3","4"};
System.out.println(a[0]);
三、實戰應用測試
/**
* 測試將字串轉化為JSONArray
* 然後取出特定的值
* import net.sf.json.JSONArray;
* import net.sf.json.JSONObject;
* import org.apache.commons.lang.StringUtils;
*/
@Test
public void test2(){
String sCheck;//待檢測字串
//null 場景
String s0=null;
//空串場景
String s1="";
//包含且只包含一個場景
String s2="[{\"name\":\"名字1\",\"type\":\"type1\",\"group\":\"1.02\"}]";
//不包含,但是有其他場景
String s3="[{\"type\":\"type2\",\"group\":2,\"name\":\"啦啦啦\",\"tip\":\"快快參加吧!\"}]";
//混合包含且包含正確的場景-靠後
String s4="[{\"type\":\"type2\",\"group\":2,\"name\":\"啦啦啦\",\"tip\":\"快快參加吧!\"},{\"name\":\"名字1\",\"type\":\"type1\",\"group\":\"1.02\"}]";
//混合包含且包含正確的場景-靠前
String s5="[{\"name\":\"名字1\",\"type\":\"type1\",\"group\":\"1.02\"},{\"type\":\"type2\",\"group\":2,\"name\":\"啦啦啦\",\"tip\":\"快快參加吧!\"}]";
sCheck=s5;
String result ="0";//名字1預設為0
if(StringUtils.isNotBlank(sCheck)){//如果字串不為空
JSONArray jary=JSONArray.fromObject(sCheck);
for(int i=0;i<jary.size();i++){
JSONObject job=JSONObject.fromObject(jary.get(i).toString());
if("type1".equals((String)job.get("type"))){
System.out.println("預期的type值"+(String)job.get("type"));
result=(String)job.get("group");//獲取對應的名字1
break;//迴圈終止
}else{
System.out.println("非預期的type值"+(String)job.get("type"));
}
}
}
System.out.println("名字1的值為:"+result);
}
相關文章
- JavaScript中將JSONArray文字內容轉JSON物件陣列JavaScriptJSON物件陣列
- JSONObject與JSONArray 解析JSON格式字串JSONObject字串
- JSONObject與JSONArray的使用JSONObject
- JSONObject和JSONArrayJSONObject
- js 中的json物件和mapJSON物件
- fastjson: json物件,json物件陣列,javabean物件,json字串之間的相互轉化ASTJSON物件陣列JavaBean字串
- Swift 中 String 與 CChar 陣列的轉換Swift陣列
- 陣列的reduce操作+物件陣列的map操作陣列物件
- JSONObject應用Json字串和Object物件之間的轉換,Map封裝資料思路JSONObject字串物件封裝
- c++中string類物件和字元陣列之間的相互轉換C++物件字元陣列
- json陣列和json物件的包含關係JSON陣列物件
- json中物件陣列迭代JSON物件陣列
- json物件以及陣列鍵值的深度大小寫轉換問題JSON物件陣列
- JsonArray和JsonObject遍歷方法JSONObject
- 如何區分jsonarray 和 jsonobjectJSONObject
- 字串json陣列怎麼轉換成jsonobject型別字串JSON陣列Object型別
- php陣列轉換為json,json又轉化為php物件。PHP陣列JSON物件
- Json,String,Map之間的轉換JSON
- jquery篩選陣列之grep、each、inArray、map的用法及遍歷json物件 [轉]jQuery陣列JSON物件
- 將json格式物件轉換成陣列物件JSON物件陣列
- js遍歷拼接list集合物件,JSONArray陣列物件JSON陣列
- JS中的Math物件,陣列,和Date物件JS物件陣列
- [Nodejs]json與string轉化的方法NodeJSJSON
- JS於string 和 json互轉物件JSON物件
- List ,Set,Map集合與陣列互轉陣列
- string與char陣列相互轉換陣列
- golang中struct、json、map互相轉化GolangStructJSON
- Java中 set,list,array(集合與陣列)、Map相互轉換Java陣列
- JSON 與 Java 物件之間的轉化JSONJava物件
- JavaScript 之 物件/JSON/陣列JavaScript物件JSON陣列
- 陣列與集合List的相互轉化陣列
- 陣列的 map, filter ,sort和 reduce 用法陣列Filter
- php的陣列轉為物件PHP陣列物件
- Swift中實現Array陣列和NSArray陣列的相互轉換與遍歷Swift陣列
- JS 中特殊的物件-陣列JS物件陣列
- Javascript中的陣列物件排序JavaScript陣列物件排序
- 物件和陣列的遍歷物件陣列
- 陣列和物件的拷貝陣列物件