2

我想从使用 Volley 的 android 应用程序将此类数据发送到我在 IBM Watson-Studio 中部署的机器学习模型 API。

{
   "fields":[
      "Gender",
      "Age",
      "EstimatedSalary"
   ],
   "values":[
      Gender,
      Age,
      EstimatedSalary
   ]
}

我坚持为此要求创建一个 JSON 对象并将其发送到 API。

我被困在创建 JSON-Object 并且无法继续

protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = new HashMap<>();
                params.put("fields","Gender");
                params.put("values",Gender);
                return super.getParams();
            }

我知道那行不通。但不明白如何进行。

4

1 回答 1

0

构建 JSONArray 后我得到了答案。如果有人有同样的问题,这里是答案。

JSONObject  jsonObject=new JSONObject();
        try {
            JSONArray jsonArrayFields=new JSONArray();
                jsonArrayFields.put("Age");
                jsonArrayFields.put("Gender");
                jsonArrayFields.put("EstimatedSalary");

            jsonObject.put("results",jsonArrayFields);

            JSONArray jsonArrayValues = new JSONArray();
                jsonArrayValues.put(Age);
                jsonArrayValues.put(Gender);
                jsonArrayValues.put(EstimatedSalary);

            JSONArray jsonArrayValues2D = new JSONArray();
                jsonArrayValues2D.put(jsonArrayValues); //surrounding the jsonArrayValues in another Array

            jsonObject.put("values",jsonArrayValues2D);

        } catch (JSONException e) {
            e.printStackTrace();
        }

//and finally to send to the API
 JsonObjectRequest request_json = new JsonObjectRequest(Request.Method.POST, url, jsonObject,
           new Response.Listener<JSONObject>() {
               @Override
               public void onResponse(JSONObject response) {
                   try {
                       //on successful response
                   } catch (JSONException e) {
                       e.printStackTrace();
                   }
               }
           }, new Response.ErrorListener() {
               @Override
               public void onErrorResponse(VolleyError error) {
                   VolleyLog.e("Error: ", error.getMessage());
               }
           });

    // add the request object to the queue to be executed
    RequestQueue queue = Volley.newRequestQueue(this);
    queue.add(request_json);
于 2019-06-27T15:11:48.340 回答