我的代码中有以下构造用于以下JSON
SomeVariable =
{
"FirstVar":{
"service1":"value1"
}
}
为此,我有以下内容 Java中的代码
Map<String,String> internal_service_var = new HashMap<String,String>();
internal_service_endpoint.put("service1","value1");
Map<String, String> first_var = new HashMap<String,String>();
first_var.put("FirstVar", internal_service_var.entrySet().toString());
Map<String, String> some_var = new HashMap<String, String>();
some_var.put("SomeVariable", first_var.entrySet().toString());
以下是我尝试在JSON中使用它来通过网络发送的方法 请注意,JSON中的属性值必须是String
JSONObject json = new JSONObject
json.put("var", some_var);
这会设置&#39; var&#39; json中的财产
[SomeVariable = [ "FirstVar":[ "service1":"value1"]]]
而不是
SomeVariable = { "FirstVar":{ "service1":"value1"}}
我错过了什么?
答案 0 :(得分:0)
HashMap的toString()不返回JSON格式的数据。如果您希望JSON对象仅使用JSONObject。
或者,使用xstream:
XStream xstream = new XStream(new JettisonMappedXmlDriver());
xstream.setMode(XStream.NO_REFERENCES);
String jsonRepresentation = map.toXML();
jsonRepresentation将有你的json。是的,由于古代圣贤只知道的原因,xstream使用XML进行序列化。它被误称,不太可能改变其他任何东西。