json格式是什么?json格式詳細介紹
一、json基礎入門
1、什么是json
JSON:一種與開發語言無關的、輕量級的數據存儲格式,全稱JavaScript Object Notation,一種數據格式的標準規范,起初來源于JavaScript這門語言,后來隨著使用的廣泛,幾乎每門開發語言都有處理JSON的API。
優點:易于人的閱讀和編寫,易于程序解析與生產。
JSON樣例:首先一個花括號{},整個代表一個對象,同時里面是一種Key-Value的存儲形式,它還有不同的數據類型來區分
2、數據類型表示
數據結構:Object、Array
基本類型:string,number,true,false,null
(1)Object
{key:value,key:value...}
key:string類型
value:任何基本類型或數據結構
(2)Array
[value,value...]
value:任何基本類型或數據結構。
比如:{"name":"李廣", "values":[1,2,45,"你好"] }
3、JSON數據示例
二、JSON IN JAVA
1、json使用
2、使用Map構建json
【a】:創建Map集合,通過Map的put方法存儲數據。
【b】創建JSONObject對象并把Map對象作為參數
3、使用Java Bean構建對象
【a】創建Java Bean
【b】創建JSONObject,并把Bean作為參數
4、從文件讀取json
輔助:一般解析JSON數據時,需要獲取JSON數據的途徑,這個途徑可能是文件讀取或遠程API網絡上獲取JSON數據,這里講解從文件途徑中進行文件讀取,并轉換成一個我們想要的對象,在pom文件中引入common-io的依賴,該包方便讀取文件的內容。
案例:從一個文件中讀取JSON數據,并轉換為對象。
步驟1:項目中創建王小二的JSON格式數據。
步驟2:讀取該文件,首先聲明JSON文件的File,并指明該文件的路徑(項目的根路徑下)
步驟3:通過FileUtils類的readFileToString讀入JSON文件,再通過JSONObject構造函數傳入讀入的JSON文件。
JSONObject提供了一些獲取指定key值的方法:
【1】getString("key")獲取value類型為String的值
【2】getDouble("key")獲取value類型為number的值
【3】getBoolean("key")獲取value類型為boolean的值
【4】getJSONArray("key")獲取value類型為數組的值,它的返回值是JSONArray,它是一個數組。
如果在讀取時,JSON數據中沒有指定key,一般需要打印一個日志或者拋出一個異常,這里可以使用JSONObject對象的isNull("key")方法,判斷如果沒有key值做一些操作。
三、GSON的使用
1、GSON生成json數據
步驟1:添加依賴
步驟2:使用JavaBean創建GSON數據,通過GSON的toJson(Bean對象)就可以轉換為GSON數據。
GSON:可以使用@SerializedName(“NAME”)改變GSON的key值。
2、生成json數據
GSON:可以輸出JSON樣式數據,可以使用GsonBuilder在構建JSON數據過程中,使用setPrettyPrinting()方法,然后就不使用new Gson對象而是通過gsonBuilder.create()來創建Gson對象。
GSON:可以使用GsonBuilder對象在解析時,使用setFieldNamingStrategy(回調函數)進行一些操作,例如:把Key變成大寫,如果為其他還是默認值。
GSON:JavaBean的有些屬性不想暴露在JSON數據中,通過JSON的默認生成方式會將所有屬性生成key和value進行輸出,而GSON通過聲明一個類型為transient類型的屬性,這樣在JSON數據生成過程中就會忽略掉該屬性。
3、GSON解析
4、GSON解析 日期轉換
JSON不支持日期格式數據,所以只能使用String類型的日期。但是java中有Date數據類型的數據,GSON是支持日期類型數據的(此處的支持是指將日期轉換成Date的格式)。
步驟1:創建Gson對象時,通過new GsonBuilder()的setDateFormat(“yyyy-MM-dd”).create(),通過該模板GSON會把符合該模式的字符串日期自動轉換成Date的類型
5、集合類解析
GSON另外一個常用操作:進行轉換和解析過程中,能夠將JSON中的數組和java中的集合類進行對接。
案例:這里把實體類中數組類型的major換為集合類型List。

2022-01-12 16:50:28
2022-01-12 14:16:53
2022-01-12 09:59:21
2022-01-12 08:30:09
2022-01-12 08:28:09
2022-01-12 08:26:11
2022-01-12 08:24:25
2022-01-12 08:22:56
2022-01-12 08:21:28
2022-01-12 08:19:22
2022-01-12 08:15:03
2022-01-12 08:13:37
2022-01-12 08:12:23
營業執照公示信息
相關新聞