java 有没有办法处理API调用返回的“数组响应

oknrviil  于 2022-12-21  发布在  Java
关注(0)|答案(3)|浏览(130)

我正在测试一个API,它返回的响应是一个数组,我发现它很难存储在列表或数组?
我正在使用JsonPath获取记录
API响应如下

[
    "String1",
    "String2",
    "String3",
    "String4",
    "String5"
]

我正在使用以下代码

Response response;
JsonPath jsonPathEvaluator = response.jsonPath();
jsonPathEvaluator.getString("[0]");
jckbn6z7

jckbn6z71#

您可以尝试以下操作来获取字符串列表:

List<String> = jsonPathEvaluator.get();

List<String> = jsonPathEvaluator.getList("");
wh6knrhe

wh6knrhe2#

您可以使用JSONArrayRequest()方法,其工作原理与JSONObjectRequest()类似。
如果是GET请求方法,示例代码如下所示:

JsonArrayRequest requestData = JSONArrayRequest(Request.Method.GET, 'https://your-api/endpoint', null, new Response.Listener<JSONArray>(){
   
  @Override
  public void onResponse(JSONArray response){

     //do whatever you want with the response data from here

  }      

 }, new Response.ErrorListener(){
    
    @Override
    public void onErrorResponse(VolleyError error){
      //whenever there is an error in response...
     // ...the code works, data is usually retrieved, just that it's not the 
     //... intended type
    }

  });

// add the request to the queue
RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
requestQueue.add(requestData);

不要忘记导入所需的类。

y1aodyip

y1aodyip3#

如果元素列表的标签是一种类型,则效果更好:-

{  
   "Strings":[  
      "String1",
      "String2",
      "String3",
      "String4",
      "String5"
   ]
}

JsonArray arrObj = empObj.getJsonArray("Strings");

这将返回一个JsonArray,您可以根据需要将其转换为任何类型
如果你不能改变输入json,也许这会有所帮助:-

String [] json = new  String[10];
 obj = parser.parse(response);
 String jsoString = obj.toString();
 List<String> items = Arrays.asList(jsoString.split("\\s*,\\s*"));

相关问题