java中json的使用方法

大雄45發表於2020-07-03
josn:
    一種資料傳輸格式,與開發語言無關,輕量級
    一開始是javaScript的,但是後面比較流傳,幾乎所有語言都有相應的使用API

java中json的使用方法java中json的使用方法

資料結構:
Object---物件

  使用花括號{}包含的鍵值對結構
  Key必須是String型別,value為任何基本型別或者資料結構(物件,或者陣列)

Array---陣列

  使用中括號[]來起始,並用逗號,來分隔元素

基本型別:

   string number true false null
例如:

{
  "name" :"王小二",
  "age": 22,
  "birthday" : "1990-12-1", 注意:json裡沒有Date這種時間的型別,所以用string;需要了解一下時間戳
  "school" : "藍翔",
  "major": ["理髮","挖掘機"],
  "has_girlfriend":false,
  "car": null,
  "house": null,
  "commont": "這是一個註釋"
}
注意:
json中沒有註釋的寫法,但是我們可以曲線救國
{
    "id":"1",
    "author":{
        "id":"1506200043",
        "name":"kylin",
        "gender":1
    },
    "major":["理髮","挖掘機"]
}

java對json有支援,在使用的時候需要引入以下包:

    

commons-beanutils.xxx.jar
    commons-collections.xxx.jar
    commons-lang.xxx.jar
    commons-logging.jar
    json-lib.xxx.jar
    ezmorph.xxx.jar
JSON字串的常用生成方式:----------從後端傳送給前端的資料
使用map來放key-value資料,然後轉換成json物件--再轉換成json字串---再傳送給前端
//map(javaObject)--->jsonObject---->jsonStr ----前端
import net.sf.json.JSONObject;
public void jsonStrByMap(){
//構建map物件,並且把需要傳送給前端的東西新增進入
Mapparams=new HashMap<>();
params.put("status","200");
params.put("username","kylin");
params.put("password","123456");
params.put("sexy","male");
params.put("userID","15062");
//java物件變成json物件
JSONObject jsonObject=JSONObject.fromObject(params);
//json物件轉換成json字串
String jsonStr=jsonObject.toString();
System.out.println(jsonStr);
}
使用javabean來構建json
User.java
public class User {
  private String username;
  private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
//javabean---json物件---json字串---->前端
public void jsonStrByJavaBean(){
//建立一個User物件
User user=new User();
user.setUsername("kylin");
user.setPassword("123456");
//java物件轉換成json物件
JSONObject jsonObject=JSONObject.fromObject(user);
//json物件轉換成json字串
String jsonStr=jsonObject.toString();
System.out.println(jsonStr);
}
從前端獲取的資料------>轉換成後端可以用的資料
json字串轉換成java物件
//前端傳遞過來的是json字串,那麼我們對這個字串需要進行獲取並且處理
//json字串-----json物件------java物件
JSONObject jsonobject = JSONObject.fromObject(jsonStr);
User user=(User)JSONObject.toBean(jsonobject,User.class);
//然後就透過user物件來操作了
String username=user.getUsername();
String password=user.getPassword();
json字串轉換成map物件
JSONObject jsonobject = JSONObject.fromObject(jsonStr);
Map params=(Map) jsonObject;
//然後就可以透過map來操作了
//判斷是否有username欄位和username欄位
if (params.containsKey("username")){
    System.out.println(params.get("username"));
}
if (params.containsKey("password")){
    System.out.println(params.get("password"));
}
小結:

json是一種前後端的通訊規範,上面介紹的是JSON(android SDK中的官方庫);一般在移動客戶端的時候使用,後續將會介紹GSON(谷歌的一個開源庫),一般用於服務端後臺的開發中,功能相對強大.
  

JSON庫的總結:

功能:對映java物件和json字串

  1. 透過Annotation註解來宣告
  2. 支援自定義屬性名稱
  3. 支援包含或排除屬性
  4. 支援自定義藉口自己完成解析/生成過程
流程:
  1. 後端使用java編寫json,
  2. 前端使用javascript直接對json字串進行解析
  3. android客戶端使用json類來解析

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2702390/,如需轉載,請註明出處,否則將追究法律責任。

相關文章