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

时间:2015-11-07 08:28:34

标签: java android json hashmap android-volley

我正在使用 Volley Library 在Android中发帖,我这样做

JsonObjectRequest postRequest = new JsonObjectRequest(URL, new JSONObject(hashMap));

这里是新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);

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

  

联络:               {contactName:&#34; ABCD&#34;,phoneNumber:&#34; 98980980980&#34; }

我该怎么做?

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

1 个答案:

答案 0 :(得分:5)

由于contact键值为:

{ contactName: "ABCD", phoneNumber: "98980980980" }

表示要传递包含contactNamephoneNumber的JSONObject作为键值对:

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

...
postparams.put("contact", json.toString());