柚子快報激活碼778899分享:java Json字符串
柚子快報激活碼778899分享:java Json字符串
json值格式
?數(shù)字(整數(shù)或浮點數(shù))
?字符串(在雙引號中)
?邏輯值(true或 false)
?null
?數(shù)組(在方括號中) 例如:{"Teachers":["roy","will"]}
String arrayJson="[1,3,4]";
//轉換成json數(shù)組(用JSON.paraseArray)
JSONArray arrayJO=JSON.parseArray(arrayJson);
//jsonArray通過下標獲取存儲的第二個元素
System.out.println("存儲的第二個元素是"+arrayJO.get(1));
#輸出結果
存儲的第二個元素是3
?對象(在花括號中) 例如:{"course":{"teacher":"roy","courese":"java"}}
#例1: jsonString值
String jsonString="{\"status\":200,\"msg\":\"查詢成功\",\"nickname\":\"測試賬號\",\"id\":\"12831\",\"describe\":\"will的測試賬號\"}";
//轉換成json 對象(用JSON.paraseObject)
JSONObject jsonObject=JSON.parseObject(jsonString);
System.out.println(jsonObject);
//jsonObject通過鍵的方式獲取值
System.out.println("Nickname的值是"+jsonObject.get("nickname"));
#輸出結果
# jsonString值輸出結果
{"msg":"查詢成功","nickname":"測試賬號","id":"12831","describe":"will的測試賬號","status":200}
Nickname的值是測試賬號
#例2:Object值
//將對象的屬性寫成 鍵:值的格式。
WashMachine wm=new WashMachine();
//*object或其他格式使用toJSONString方法轉成JSON格式的字符串
String s =JSON.toJSONString(wm);
System.out.println(s);
//將字符串轉成JSONobject
JSONObject jsonObject= JSON.parseObject(s);
System.out.println(jsonObject);
//獲取某個值
Object canUse=jsonObject.get("canUse");
#輸出結果
#Object值輸出結果
{"age":10,"brand":"米","canUse":false,"capacity":90,"desc":["美觀","大氣","有烘干功能"],"dog":{"age":0,"ear":"尖尖的耳朵"},"king":"電器","price":0.0,"weight":40}
false
json的使用
#Json的使用
//刪
jsonObject.remove("brand");
System.out.println(jsonObject);
//改
jsonObject.replace("king","洗衣機");
System.out.println(jsonObject);
//增
jsonObject.put("volume","38");
System.out.println(jsonObject);
//遍歷 json字符串中的不同類型格式所對應的json處理方式
//對象object使用keyset()去遍歷
for (String key : jsonObject.keySet()) {
//先獲取到Object類型
Object value=jsonObject.get(key);
if(value instanceof String){
System.out.println(value+"是個字符串");
//強轉數(shù)據(jù)類型成String
// String value1=(String)value;
}else if(value instanceof Boolean){
System.out.println(value+"是個布爾值");
}else if(value instanceof BigDecimal){
System.out.println(value+"是個浮點數(shù)");
}else if(value instanceof Integer){
System.out.println(value+"是個整數(shù)");
}else if(value instanceof JSONObject){
System.out.println(value+"是個json對象");
}else if(value instanceof JSONArray){
System.out.println(value+"是個json數(shù)組");
}
}
#輸出結果
//刪
{"king":"電器","price":0.0,"weight":40,"dog":{"ear":"尖尖的耳朵","age":0},"age":10,"canUse":false,"capacity":90,"desc":["美觀","大氣","有烘干功能"]}
//改
{"king":"洗衣機","price":0.0,"weight":40,"dog":{"ear":"尖尖的耳朵","age":0},"age":10,"canUse":false,"capacity":90,"desc":["美觀","大氣","有烘干功能"]}
//增
{"volume":"38","king":"洗衣機","price":0.0,"weight":40,"dog":{"ear":"尖尖的耳朵","age":0},"age":10,"canUse":false,"capacity":90,"desc":["美觀","大氣","有烘干功能"]}
//遍歷
38是個字符串
洗衣機是個字符串
0.0是個浮點數(shù)
40是個整數(shù)
{"ear":"尖尖的耳朵","age":0}是個json對象
10是個整數(shù)
false是個布爾值
90是個整數(shù)
["美觀","大氣","有烘干功能"]是個json數(shù)組
狗對象的耳朵屬性是尖尖的耳朵
獲取desc數(shù)組中的第二個值是有烘干功能
尖尖的耳朵
米是個字符串
Json的解析
方法1:直接解析
String s="jQuery1102004922028985799365_1676625243870({\"Srcid\":\"5809\",\"ResultCode\":\"0\",\"status\":\"0\",\"QueryID\":\"2479201133\",\"Result\":[{\"DisplayData\":{\"strategy\":{\"tempName\":\"ip\",\"precharge\":\"0\",\"ctplOrPhp\":\"1\"},\"resultData\":{\"tplData\":{\"srcid\":\"5809\",\"resourceid\":\"5809\",\"OriginQuery\":\"163.228.65.13\",\"origipquery\":\"163.228.65.13\",\"query\":\"163.228.65.13\",\"origip\":\"163.228.65.13\",\"location\":\"\\u4e0a\\u6d77\\u5e02 \\u5fae\\u8f6f\\u4e91\",\"userip\":\"\",\"showlamp\":\"1\",\"tplt\":\"ip\",\"titlecont\":\"IP\\u5730\\u5740\\u67e5\\u8be2\",\"realurl\":\"http:\\/\\/www.ip138.com\\/\",\"showLikeShare\":\"1\",\"shareImage\":\"1\",\"data_source\":\"AE\"},\"extData\":{\"tplt\":\"ip\",\"resourceid\":\"5809\",\"OriginQuery\":\"163.228.65.13\"}}},\"ResultURL\":\"http:\\/\\/www.ip138.com\\/\",\"Weight\":\"2\",\"Sort\":\"1\",\"SrcID\":\"5809\",\"ClickNeed\":\"0\",\"SubResult\":[],\"SubResNum\":\"0\",\"ar_passthrough\":[],\"RecoverCacheTime\":\"0\"}],\"data\":[{\"srcid\":\"5809\",\"resourceid\":\"5809\",\"OriginQuery\":\"163.228.65.13\",\"origipquery\":\"163.228.65.13\",\"query\":\"163.228.65.13\",\"origip\":\"163.228.65.13\",\"location\":\"\\u4e0a\\u6d77\\u5e02 \\u5fae\\u8f6f\\u4e91\",\"userip\":\"\",\"showlamp\":\"1\",\"tplt\":\"ip\",\"titlecont\":\"IP\\u5730\\u5740\\u67e5\\u8be2\",\"realurl\":\"http:\\/\\/www.ip138.com\\/\",\"showLikeShare\":\"1\",\"shareImage\":\"1\"}],\"ResultNum\":\"1\"})";
//直接解析
JSONObject tplDataJson=jsonObject.getJSONArray("Result").getJSONObject(0).getJSONObject("DisplayData").getJSONObject("resultData").getJSONObject("tplData");
//用object的keyset去遍歷
for (String key : tplDataJson.keySet()) {
System.out.println(key+"的值是"+tplDataJson.get(key));
}
#輸出結果
resourceid的值是5809
OriginQuery的值是163.228.65.13
origipquery的值是163.228.65.13
query的值是163.228.65.13
shareImage的值是1
origip的值是163.228.65.13
showlamp的值是1
data_source的值是AE
tplt的值是ip
titlecont的值是IP地址查詢
srcid的值是5809
realurl的值是http://www.ip138.com/
userip的值是
location的值是上海市 微軟云
showLikeShare的值是1
方法2:JsonPath解析
$是表示根目錄,.(點)是表示下一層級
String s="jQuery1102004922028985799365_1676625243870({\"Srcid\":\"5809\",\"ResultCode\":\"0\",\"status\":\"0\",\"QueryID\":\"2479201133\",\"Result\":[{\"DisplayData\":{\"strategy\":{\"tempName\":\"ip\",\"precharge\":\"0\",\"ctplOrPhp\":\"1\"},\"resultData\":{\"tplData\":{\"srcid\":\"5809\",\"resourceid\":\"5809\",\"OriginQuery\":\"163.228.65.13\",\"origipquery\":\"163.228.65.13\",\"query\":\"163.228.65.13\",\"origip\":\"163.228.65.13\",\"location\":\"\\u4e0a\\u6d77\\u5e02 \\u5fae\\u8f6f\\u4e91\",\"userip\":\"\",\"showlamp\":\"1\",\"tplt\":\"ip\",\"titlecont\":\"IP\\u5730\\u5740\\u67e5\\u8be2\",\"realurl\":\"http:\\/\\/www.ip138.com\\/\",\"showLikeShare\":\"1\",\"shareImage\":\"1\",\"data_source\":\"AE\"},\"extData\":{\"tplt\":\"ip\",\"resourceid\":\"5809\",\"OriginQuery\":\"163.228.65.13\"}}},\"ResultURL\":\"http:\\/\\/www.ip138.com\\/\",\"Weight\":\"2\",\"Sort\":\"1\",\"SrcID\":\"5809\",\"ClickNeed\":\"0\",\"SubResult\":[],\"SubResNum\":\"0\",\"ar_passthrough\":[],\"RecoverCacheTime\":\"0\"}],\"data\":[{\"srcid\":\"5809\",\"resourceid\":\"5809\",\"OriginQuery\":\"163.228.65.13\",\"origipquery\":\"163.228.65.13\",\"query\":\"163.228.65.13\",\"origip\":\"163.228.65.13\",\"location\":\"\\u4e0a\\u6d77\\u5e02 \\u5fae\\u8f6f\\u4e91\",\"userip\":\"\",\"showlamp\":\"1\",\"tplt\":\"ip\",\"titlecont\":\"IP\\u5730\\u5740\\u67e5\\u8be2\",\"realurl\":\"http:\\/\\/www.ip138.com\\/\",\"showLikeShare\":\"1\",\"shareImage\":\"1\"}],\"ResultNum\":\"1\"})";
//用Jsonpath解析,然后用toString轉成字符串
String tplDataString= JSONPath.read(json, "$.Result.DisplayData.resultData.tplData").toString();
System.out.println(tplDataString);
#輸出結果
[{"resourceid":"5809","OriginQuery":"163.228.65.13","origipquery":"163.228.65.13","query":"163.228.65.13","shareImage":"1","origip":"163.228.65.13","showlamp":"1","data_source":"AE","tplt":"ip","titlecont":"IP地址查詢","srcid":"5809","realurl":"http://www.ip138.com/","userip":"","location":"上海市 微軟云","showLikeShare":"1"}]
4.Json與其他類型的轉換
Json轉成Map
#Json字符串轉成Map
String s="{resourceid=5809, OriginQuery=163.228.65.13, origipquery=163.228.65.13, query=163.228.65.13, shareImage=1, origip=163.228.65.13, showlamp=1, data_source=AE, tplt=ip, titlecont=IP地址查詢, srcid=5809, realurl=http://www.ip138.com/, userip=, location=上海市 微軟云, showLikeShare=1}";
#方法1
//先把字符串轉成object
JsonObject tplDataJson=JSONObject.paraseObject(s);
//然后通過object.keyset()遍歷鍵值加到map中,就實現(xiàn)了map的轉化
Map
for (String key : tplDataJson.keySet()) {
map.put(key, tplDataJson.getString(key));
}
System.out.println(map);
#方法2
//直接用JSONObject.paraseObject()方法直接轉
HashMap
System.out.println(hashMap);
#輸出結果
#方法1
{resourceid=5809, OriginQuery=163.228.65.13, origipquery=163.228.65.13, query=163.228.65.13, shareImage=1, origip=163.228.65.13, showlamp=1, data_source=AE, tplt=ip, titlecont=IP地址查詢, srcid=5809, realurl=http://www.ip138.com/, userip=, location=上海市 微軟云, showLikeShare=1}
#方法2
{resourceid=5809, OriginQuery=163.228.65.13, origipquery=163.228.65.13, query=163.228.65.13, shareImage=1, origip=163.228.65.13, showlamp=1, data_source=AE, tplt=ip, titlecont=IP地址查詢, srcid=5809, realurl=http://www.ip138.com/, userip=, location=上海市 微軟云, showLikeShare=1}
Map轉成json
將map拼接為json字符串
//注意Json的格式:鍵一定有雙引號,值不一定,值只有字符串的時候才有雙引號
String reJson="{";
//遍歷map中的每個鍵
for (String key : map.keySet()) {
if(map.get(key) instanceof String) {
//值是字符串的時候
//拼接鍵和值:“鍵”:"map.get(key)"
reJson+=String.format("\"%s\":\"%s\",", key, map.get(key));
}else {
//值不是字符串的時候,“鍵”:map.get(key)
reJson+=String.format("\"%s\":%s,", key, map.get(key));
}
}
reJson=reJson.substring(0,reJson.length()-1)+"}";
System.out.println(reJson);
#輸出結果
{"resourceid":"5809","OriginQuery":"163.228.65.13","origipquery":"163.228.65.13","query":"163.228.65.13","shareImage":"1","origip":"163.228.65.13","showlamp":"1","data_source":"AE","tplt":"ip","titlecont":"IP地址查詢","srcid":"5809","realurl":"http://www.ip138.com/","userip":"","location":"上海市 微軟云","showLikeShare":"1"}
Json轉成其他類型
#Json轉成JsonObject
JSONObject jsonObject=JSONObject.parseObject(json字符串);
#Json轉成字符串
String s= (json字符串).toString();
#對象可以轉成json字符串
//將對象的屬性寫成 鍵:值的格式。
WashMachine wm=new WashMachine();
//其他格式轉成JSON格式的字符串
String s =JSON.toJSONString(wm);
柚子快報激活碼778899分享:java Json字符串
推薦鏈接
本文內容根據(jù)網絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉載請注明,如有侵權,聯(lián)系刪除。