将包含键值对的对象作为值传递给Java/Android中的hashmap

Gau*_*rma 2 java android json hashmap android-volley

我正在使用Volley Library在android中发布,我这样做

JsonObjectRequest postRequest = new JsonObjectRequest(URL, new JSONObject(hashMap));
Run Code Online (Sandbox Code Playgroud)

这里是新JsonObjectRequest的第二个参数,我将hashmap转换为JSONObject.

下面是我的hashMap

 Map<String, Object> postparams = new HashMap<String, Object>()
        postparams.put("protocol", "A");
        postparams.put("service_type", "B");
        postparams.put("access_id",accessID);
        postparams.put("contact", contactDetails);
Run Code Online (Sandbox Code Playgroud)

联系人密钥有一个嵌套的JSON作为这样的值

联系方式:{contactName:"ABCD",phoneNumber:"98980980980"}

我该怎么办?

我的尝试:我尝试创建一个hashmap并使用jackson转换它并传递它,但是我得到了一个错误,这是因为我将对象转换为JSON两次.

ρяσ*_*я K 5

由于contact键值为:

{ contactName: "ABCD", phoneNumber: "98980980980" }
Run Code Online (Sandbox Code Playgroud)

意味着要传递一个包含contactNamephoneNumber作为键值对的JSONObject :

JSONObject json=new JSONObject();
json.put("contactName", contactDetails.getcontactName());
json.put("phoneNumber", contactDetails.getphoneNumber());

...
postparams.put("contact", json.toString());
Run Code Online (Sandbox Code Playgroud)