2017-02-24 144 views
0

基本上我使用GET調用來觸發一組API,它在json中返回數據,並且我想僅打印如下面的json代碼段中提到的hostid之類的特定字符串。如何從selenium webdriver中的json中返回數據的API讀取數據?

"hostId" : 286, 
    "parentSectionName" : "adadfr", 
    "rank" : 86096.0, 
    "activationStatus" : "ACTIVE", 
    "overrideLinkProp" : 0, 
+0

有各種天秤座你可以根據你使用的語言來解析'JSON'。選一個對你看起來很好的人。它可能是你的'selenium'測試的一部分,但是你不會使用'selenium'庫來處理'JSON'對象。 – mrfreester

回答

1

假設你的JSON看起來像這樣:

 String jsonToDecode = "{" + 
     " \"hostId\" : 286,\n" + 
      " \"parentSectionName\" : \"adadfr\",\n" + 
      " \"rank\" : 86096.0,\n" + 
      " \"activationStatus\" : \"ACTIVE\",\n" + 
      " \"overrideLinkProp\" : 0,"+ 
      "}"; 

您可以使用 「com.googlecode.json - 簡單的」 包裝像這樣對其進行解碼:

JSONParser parser = new JSONParser(); 
    Object parsedJson = new Object(); 
    try { 
     parsedJson = parser.parse(jsonToDecode); 
    } catch (ParseException e) { 
     //do something when json parsing fails 
    } 
    JSONObject jsonObject = (JSONObject) parsedJson; 
    String name = (String) jsonObject.get("parentSectionName"); 
    System.out.print(name); // will output adadfr 
+0

偉大的Java示例,謝謝 – mrfreester

0

在java中你可以使用JsonPath:

String jsonToDecode = "{" + 
     " \"hostId\" : 286,\n" + 
      " \"parentSectionName\" : \"adadfr\",\n" + 
      " \"rank\" : 86096.0,\n" + 
      " \"activationStatus\" : \"ACTIVE\",\n" + 
      " \"overrideLinkProp\" : 0,"+ 
      "}"; 
System.out.println(JsonPath.from(jsonToDecode).getString("hostId")); 
相關問題