将包含键值对的对象作为值传递给Java/Android中的hashmap
我正在使用截击库在android中发布我的文章将包含键值对的对象作为值传递给Java/Android中的hashmap,java,android,json,hashmap,android-volley,Java,Android,Json,Hashmap,Android Volley,我正在使用截击库在android中发布我的文章 JsonObjectRequest postRequest = new JsonObjectRequest(URL, new JSONObject(hashMap)); 在新JSONObject请求的第二个参数中,我将hashmap转换为JSONObject 下面是我的hashMap Map<String, Object> postparams = new HashMap<String, Object>()
JsonObjectRequest postRequest = new JsonObjectRequest(URL, new JSONObject(hashMap));
在新JSONObject请求的第二个参数中,我将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);
Map postparams=newhashmap()
后参数put(“协议”,“A”);
postparams.put(“服务类型”、“B”);
postparams.put(“访问id”,accessID);
postparams.put(“联系人”,contactDetails);
联系人键有一个嵌套的JSON值,如下所示
联系人:
{联系人姓名:“ABCD”,电话号码:“980”}
我该怎么做
我的尝试:我尝试创建一个hashmap,用jackson转换并传递它,但我得到了一个错误,这是预期的,因为我正在将一个对象转换为JSON两次。作为
联系人
键值是:
{ contactName: "ABCD", phoneNumber: "98980980980" }
表示要将包含contactName
和phoneNumber
的JSONObject作为键值对传递:
JSONObject json=new JSONObject();
json.put("contactName", contactDetails.getcontactName());
json.put("phoneNumber", contactDetails.getphoneNumber());
...
postparams.put("contact", json.toString());
问:你说的是标准的Android库吗?如果是这样的话,竖起大拇指。一个很好的建议。简单地使用Android Json库是简单、高效的。。。而且比试图和杰克逊摔跤要容易得多。注:JSONObject基本上只是一个Java hashmap。。。但是,尽可能多地在对象中嵌套对象是很容易的。Java对象和JSON文本之间的序列化/反序列化也很容易。大家好,谢谢你们的建议/解决方案,看起来应该可以,虽然我无法验证今天是否是周末,服务器关闭,但我肯定会在周一测试完后返回结果。干杯@paulsm4@K(很抱歉无法键入您的完整用户名)感谢@K对使用JSONObject的建议,因为它确实简化了任务。对于那些刚刚阅读此链接的人来说,这有助于他们自动实现上述目标吗?。。仅表示对象?您应该检查要发布的正确变量是
hashMap
或postparams
:)很抱歉,这是一个输入错误,我编辑了它。谢谢你的评论@BNK