如何从selenium webdriver中的json中返回数据的API中读取数据?

时间:2017-02-24 20:41:53

标签: json selenium webdriver

基本上我使用GET调用触发一组API,它返回json中的数据,我想只打印特定的字符串,如下面json片段中提到的hostid。

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

2 个答案:

答案 0 :(得分:1)

假设你的json看起来像这样:

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

您可以使用" com.googlecode.json-simple"解码它。像这样的包:

    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

答案 1 :(得分: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"));