无法通过 POST 请求将 JSON 放入数组

Can't get JSON into array from POST request

我正在使用 Unirest 库来解析一些 JSON 我从 MAshape API 得到的东西。我刚开始在 Java 中发出 HTTP 请求,我无法理解错误。

我做的函数是:

public ArrayList<String> httpPost(int year) {
    HttpResponse<String> response = null;
    try {
        response = Unirest.post("https://--------.p.mashape.com/v1/calculate/" + year)
                .header("X-Mashape-Key", "--------------------------")
                .header("Content-Type", "application/x-www-form-urlencoded")
                .header("Accept", "application/json")
                //.field("blabla", "blabla")
                .field("filing_status", myFS)
                .field("pay_periods", myPP)
                .field("pay_rate", getGrossPay())
                .field("state", myState)
                .asString();
    } catch (UnirestException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    // retrieve the parsed JSONObject from the response
    JSONObject myObj = new JSONObject(response);
    JSONArray results = new JSONArray();
    try {
        results = myObj.getJSONArray("annual"));
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    ArrayList<String> list = new ArrayList<String>(); 
    if (results != null) { 
       int len = results.length();
       for (int i=0;i<len;i++){ 
        try {
            list.add(results.get(i).toString());
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
       } 
    }
    return list;
}

我收到错误:

org.json.JSONException: JSONObject["annual"] not found

所以我把response这个变量输出到一个文件中,这个文件里面有com.mashape.unirest.http.HttpResponse@161b062a。我不知道那是从哪里来的。

只是为了检查一下,我使用了 hurl.it 并且我在我的程序中输入的相同响应产生了成功的响应:

{
  "annual": {
    "state": {
      "amount": 68232.65
    },
    "fica": {
      "amount": 91800
    },
    "federal": {
      "amount": 418014.8
    }
  },
  "per_pay_period": {
    "state": {
      "amount": 5686.05
     },
     "fica": {
      "amount": 7650
    },
    "federal": {
      "amount": 34834.57
    }
  }
}

我尝试将 response 的类型从 String 更改为 JsonNode 但它没有用,我真的不知道如何使用它。我也添加了所有必需的库。有帮助吗?

使用myObj.getJSONObject("annual");