json学习
最近开发一直会用到json 无论是前端还是后台,自己好像又有点模糊,所以简单整理一下。
1.什么是json
JSON是一种与开发语言无关的、轻量级的数据格式,全称JavaScript Object Notation。JSON与具体的编程语言没有是关系的,更确切的称之为一种数据格式的标准或是规范。
JSON的优点:易于人的阅读和编写,易于程序解析与生产。
2.json 的格式
1 { 2 "comCode": "0", 3 "agent": { 4 "OpenId": "oOAvMwE5VKHCmwvZadxcmsbbNClU", 5 "Channel": "G" 6 }, 7 "insured": { 8 "Sex": "0", 9 "Age": "21", 10 "OccupationCode": "A101" 11 }, 12 "ControlCode": "Prem", 13 "appnt": { 14 "PluralityType": "", 15 "SmokeFlag": "", 16 "Operator": "", 17 "ManageCom": "", 18 "MakeDate": "", 19 "MakeTime": "", 20 "ModifyDate": "", 21 "ModifyTime": "" 22 }, 23 "polSet": [{ 24 "mainPol": { 25 "PolTypeFlag": "S", 26 "RiskCode": "G0015", 27 "InsuredAppAge": "21", 28 "InsuredPeoples": "0", 29 "ULFLBonusPolno": "" 30 } 31 }] 32 }
3.json 内容的获取
json 格式的内容在传递到后台的时候,大部分会通过注解转换成一个对象,或者它只是一个json格式的字符串。下面就以json格式的字符串为例,看一下如何获取key 以及 对应的value值。
1 package com.mq; 2 3 4 import net.sf.json.JSONArray; 5 import net.sf.json.JSONObject; 6 7 public class jsonDemo { 8 public static void main(String[] args) { 9 String jsonDate = "{\"name\":\"ali\",\"age\":\"18\",\"sex\":\"女\",\"friend\":[{\"name\":\"bli\",\"age\":\"19\"},{\"name\":\"cli\",\"age\":\"29\"}]}"; 10 //转换json对象 11 JSONObject jsonObj = JSONObject.fromObject(jsonDate); 12 System.out.println(jsonObj.get("name")); 13 //第一种方法 14 System.out.println(jsonObj.get("friend").getClass()); 15 System.out.println(jsonObj.get("friend")); 16 Object backBodyJson = jsonObj.get("friend"); 17 JSONArray jsonArray=JSONArray.fromObject(backBodyJson); 18 System.out.println(jsonArray.get(0).getClass()); 19 System.out.println(JSONObject.fromObject(jsonArray.get(0)).get("name")); 20 //第二种方法 21 JSONArray jsonArray1 = jsonObj.getJSONArray("friend"); 22 JSONObject jsonObjDate = jsonArray1.getJSONObject(1); 23 System.out.println(jsonObjDate.get("name")); 24 25 } 26 }
运行结果:
ali class net.sf.json.JSONArray [{"name":"bli","age":"19"},{"name":"cli","age":"29"}] class net.sf.json.JSONObject bli cli