java中的json使用


josn:

    一種數據傳輸格式,與開發語言無關,輕量級
    一開始是javaScript的,但是后面比較流傳,幾乎所有語言都有相應的使用API

數據結構:

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字符串的常用生成方式:----------從后端發送給前端的數據
1.使用map來放key-value數據,然后轉換成json對象--再轉換成json字符串---再發送給前端

//map(javaObject)--->jsonObject---->jsonStr ----前端
import net.sf.json.JSONObject; public void jsonStrByMap(){ //構建map對象,並且把需要發送給前端的東西添加進入
Map<String,String> params=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); }

 

2.使用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.支持自定義借口自己完成解析/生成過程

流程:
  后端使用java編寫json,
  前端使用javascript直接對json字符串進行解析
  android客戶端使用json類來解析

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM