<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      JsonPath如何獲取JSON數(shù)據(jù)中的值

      場(chǎng)景: 發(fā)送接口請(qǐng)求后,得到請(qǐng)求結(jié)果值是Json數(shù)據(jù), 需要從Json數(shù)據(jù)信息中提取字段值。

                響應(yīng)值字符與字符之間有空格,導(dǎo)致用正則表達(dá)式方法提取比較麻煩,于是用java的JsonPath方法提取快速方便好用,根據(jù)JSON路徑去取。

       

      Json數(shù)據(jù): 需要提取FILE 字段對(duì)應(yīng)的值。

      {
         "data" : {
            "testCaseData" : [
               {
                  "agent_version" : "9.7.0.2225",
                  "android_id" : "e3d699cf01620531",
                  "asset_number" : "",
                  "FILE" : "./ wwwccko(33)  .zip",
                  "noncomp_reason" : "",
               },
               {
                  "agent_version" : "2.0.0.1518",
                  "android_id" : "",
                  "asset_number" : "",
                   "FILE" : "./XXXX(22)  .zip",
                  "noncomp_reason" : "",
               }
            ],
            "total_count" : 2
         },
         "error_code" : 1,
         "message" : "Success",
         "timestamp" : 1504765848
      }

       

      解決方法:

      package com.app.test;
      
      import java.util.LinkedHashMap;
      import net.minidev.json.JSONArray;
      import com.jayway.jsonpath.JsonPath;
      import com.jayway.jsonpath.Predicate;
      import java.io.File;
      import java.io.FileInputStream;
      import java.io.IOException;
      import java.io.UnsupportedEncodingException;
      
      public class TestJsonPath {
      
          public static void main(String[] args) {
              String charset = "utf-8";
              File file = new File("D:\\Work_Report\\JSON2.txt");
              long fileByteLength = file.length();
              byte[] content = new byte[(int) fileByteLength];
              FileInputStream fileInputStream = null;
              try {
                  fileInputStream = new FileInputStream(file);
                  fileInputStream.read(content);
              } catch (IOException e) {
                  e.printStackTrace();
              } finally {
                  try {
                      fileInputStream.close();
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
              }
              String str = null;
              try {
                  str = new String(content, charset);
              } catch (UnsupportedEncodingException e) {
                  e.printStackTrace();
              }
              System.out.println(str);
              readjson(str, "$.data.testCaseData[0].FILE");
              System.out.println(readjson(str, "$.data.testCaseData[0].FILE"));
          }
      
          public static String readjson(String json, String jsonPath) {
              try {
                  Object value = JsonPath.read(json, jsonPath, new Predicate[0]);
                  if (value instanceof Integer) {
                      return value.toString();
                  } else if (value instanceof String) {
                      return value.toString();
                  } else if (value instanceof Boolean) {
                      return value.toString();
                  } else if (value instanceof JSONArray) {
                      JSONArray arr = (JSONArray) value;
                      if (!arr.isEmpty()) {
                          return arr.toJSONString();
                      } else
                          return "";
                  } else if (value instanceof LinkedHashMap) {
                      return value.toString();
                  } else if (value instanceof Float) {
                      return value.toString();
                  } else {
                      return value.toString();
                  }
              } catch (Exception e) {
                  return "pathnotfound";
              }
          }
      }

      注: JsonPath固定語(yǔ)法:   $.XX.XX[索引].對(duì)象key

       

      依賴包

      <dependency>
          <groupId>com.jayway.jsonpath</groupId>
          <artifactId>json-path</artifactId>
          <version>2.4.0</version>
      </dependency>

       

      String rep.jsonpath.result;
      rep=repv.getResponseDataAsString();
      jsonpath = "$.data.device[1].version
      result = readjson(pre,jsonpath)
      vars.put("XX",result)

       

      工具類:

      import java.io.File;
      import java.io.FileInputStream;
      import java.io.IOException;
      import java.io.UnsupportedEncodingException;
      import java.util.LinkedHashMap;
      import net.minidev.json.JSONArray;
      import com.jayway.jsonpath.JsonPath;
      import com.jayway.jsonpath.Predicate;
      
      public class Utils {
      
          public static String readJson(String filePath) {
              String charset = "utf-8";
              File file = new File(filePath);
              long fileByteLength = file.length();
              byte[] content = new byte[(int) fileByteLength];
              FileInputStream fileInputStream = null;
              try {
                  fileInputStream = new FileInputStream(file);
                  fileInputStream.read(content);
              } catch (IOException e) {
                  e.printStackTrace();
              } finally {
                  try {
                      fileInputStream.close();
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
              }
              String str = null;
              try {
                  str = new String(content, charset);
              } catch (UnsupportedEncodingException e) {
                  e.printStackTrace();
              }
              return str;
          }
      
          public static String readjson(String json, String jsonPath) {
              try {
                  Object value = JsonPath.read(json, jsonPath, new Predicate[0]);
                  if (value instanceof Integer) {
                      return value.toString();
                  } else if (value instanceof String) {
                      return value.toString();
                  } else if (value instanceof Boolean) {
                      return value.toString();
                  } else if (value instanceof JSONArray) {
                      JSONArray arr = (JSONArray) value;
                      if (!arr.isEmpty()) {
                          return arr.toJSONString();
                      } else
                          return "";
                  } else if (value instanceof LinkedHashMap) {
                      return value.toString();
                  } else if (value instanceof Float) {
                      return value.toString();
                  } else {
                      return value.toString();
                  }
              } catch (Exception e) {
                  return "pathnotfound";
              }
          }
      
      }

       

      posted @ 2019-02-21 21:25  vame  Views(7611)  Comments(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 欧美牲交a欧美牲交aⅴ图片| 亚洲AV日韩AV永久无码电影| 午夜精品一区二区三区免费视频| 91老肥熟女九色老女人| 国产精品小粉嫩在线观看| 亚洲aⅴ综合av国产八av| 少妇又爽又刺激视频| 又大又粗欧美成人网站| 成人国产精品中文字幕| 精品无码专区久久久水蜜桃| 日韩高清免费一码二码三码| 亚洲国产成人精品女久久| 亚洲精品一二三四区| 国产综合视频一区二区三区| 日韩卡一卡2卡3卡4卡| 777久久精品一区二区三区无码| 国产精品区一区第一页| 日韩乱码人妻无码中文字幕视频| 成人精品天堂一区二区三区| 梁山县| 99精品国产精品一区二区| 中文字幕人妻av12| 与子敌伦刺激对白播放| 亚洲国产高清第一第二区| 免费无码高潮流白浆视频| 人妻人人做人碰人人添| 男女啪啪免费观看网站| 亚洲色婷婷综合开心网| 国产suv精品一区二区| 国产精品一区二区三区性色| 人妻少妇偷人精品一区| 无遮挡又黄又刺激的视频| 精品人妻午夜一区二区三区四区| 影音先锋啪啪av资源网站| 99国产欧美另类久久久精品| 97视频精品全国免费观看| 野外做受三级视频| 宁波市| 成全影视大全在线观看| 国产精品高潮无码毛片| 国产精品亚洲二区在线看|