2016-08-05 5 views
0

私はここでのJavatoString()は中括弧を四角に変更しますか?

に次の コード
 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

このため
SomeVariable = 
    { 
     "FirstVar":{ 
      "service1":"value1" 

     } 
} 

のための私のコードで構築する必要があり、私はにJSONでそれを使用しようとする方法でありますJSONのプロパティの値が文字列

JSONObject json = new JSONObject 
json.put("var", some_var); 

にする必要があるとワイヤ上 注意を送信これは

[SomeVariable = [ "FirstVar":[ "service1":"value1"]]] 

代わりの

SomeVariable = { "FirstVar":{ "service1":"value1"}} 

私は何をしないのですようにJSONに 'VAR' プロパティを設定しますか?

+0

私はあなたが提示したバリエーションのいずれでもない、この結果を{{"var":{"SomeVariable": "[FirstVar = [service1 = value1]]"}} 'とします。 –

+0

なぜ、あなたが 'entrySet'の' toString'結果を格納しているのかも不明です。 –

+0

'Map 'を使用できますか?これはあなたの 'toString()'を避けることができます – Imran

答えて

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はtoXMLを使用してシリアル化を行います。それは誤った名前であり、他のものに変更する可能性は低いです。