json裏面put了null會怎麼樣?

本人在使用httpclient作接口測試的過程當中,遇到一個請求系統資源的接口。裏面每項資源都有一個version,邏輯是:若是第一次請求,version傳空,就會獲取最近的resource信息,若是穿了版本號,一致返回空表示不更新,不一致會更新本地的緩存數據。我寫了一個方法,第一次請求的時候會把版本號保存下載,第二次請求會這些版本號信息當作參數傳入,檢驗是否返回空。結果發現了一個jsonobject的問題,就是第一次請求的時候,傳null的參數並無帶上參數。通過查閱相關資料發現了,jsonobject若是在put方法的時候,value值是null,就隱藏該項,因此致使會從json數據中消失。java

下面放一下本身的代碼:編程

/**
	 * 獲取系統靜態資源
	 * 
	 * 第一次獲取設置各個版本號,第二次直接使用版本號
	 * 
	 * @return
	 */
	public JSONObject getResource() {
		JSONObject response = null;
		String url = urls.getString("static_config");
		JSONObject args = getParams(token);
		args.put("audio_country", "");
		args.put("audio_label", "");
		args.put("game_user_number", "");
		args.put("banner", "");
		args.put("video_open_time", "");
		args.put("tip", "");
		args.put("objective", objectiveVersion);
		args.put("startup_page", startupVersion);
		args.put("game", gameVersion);
		args.put("app", appVersion);
		args.put("gift", giftVersion);
		args.put("app_media_config", videoVersion);
		HttpGet httpGet = getHttpGet(url, args);
		output(args.size());
		response = getHttpResponseEntityByJson(httpGet);
		// output(response);
		if (response.containsKey("dataInfo") && objectiveVersion.isEmpty()) {
			JSONObject dataInfo = response.getJSONObject("dataInfo");
			objectiveVersion = dataInfo.getJSONObject("objective").getString("version");
			startupVersion = dataInfo.getJSONObject("startup_page").getString("version");
			gameVersion = dataInfo.getJSONObject("game").getString("version");
			appVersion = dataInfo.getJSONObject("app").getString("version");
			giftVersion = dataInfo.getJSONObject("gift").getString("version");
			videoVersion = dataInfo.getJSONObject("video_open_time").getString("version");
		}
		return response;
	}

在幾個版本號初始化的時候,由於是string類型的成員變量,因此默認值是null,致使請求不到數據。更改初始化值爲「""」便可,下面是初始化成員變量的代碼。json

public String objectiveVersion = "";// 目的頁版本號
public String startupVersion = "";// 啓動頁版本號
public String gameVersion = "";// 遊戲版本號
public String appVersion = "";// app更新配置版本號
public String giftVersion = "";// 禮物版本號
public String videoVersion = "";// 視頻版本號

往期文章精選

  1. java一行代碼打印心形
  2. Linux性能監控軟件netdata中文漢化版
  3. 接口測試代碼覆蓋率(jacoco)方案分享
  4. 性能測試框架
  5. 如何在Linux命令行界面愉快進行性能測試
  6. 圖解HTTP腦圖
  7. 寫給全部人的編程思惟
  8. 測試之JVM命令腦圖
  9. 將json數據格式化輸出到控制檯
  10. 如何測試機率型業務接口
  11. 「雙花」BUG的測試分享
  12. 將swagger文檔自動變成測試代碼

公衆號地圖 ☢️ 一塊兒來~FunTester

相關文章
相關標籤/搜索