Ich habe folgendtoString() Änderungen ":" zu "=" in einem Java hashmap
public static void main(String []args) throws JSONException{
Map<String,String> varMap = new HashMap<String,String>();
varMap.put("VAR","123");
varMap.put("OTHER_VAR","234");
JSONObject json = new JSONObject();
json.put("Variable",varMap);
System.out.println("JSON " + json);
}
Das gibt mir das richtige Ergebnis als
JSON {"Variable":{"VAR":"123","OTHER_VAR":"234"}}
Aber in meinem json folgt kann ich verwenden nur einen String-Wert, so dass es an sich verändernde folgende gibt mir ein unerwartetes Ergebnis
public static void main(String []args) throws JSONException{
Map<String,String> varMap = new HashMap<String,String>();
varMap.put("VAR","123");
varMap.put("OTHER_VAR","234");
JSONObject json = new JSONObject();
json.put("Variable",varMap.toString());
System.out.println("JSON " + json);
}
unerwartetes Ergebnis
JSON {"Variable":"{VAR=123, OTHER_VAR=234}"}
Ich kann das achive durch manuell gleich mit dem Ersetzen „:“
public class json{
public static void main(String []args) throws JSONException{
Map<String,String> varMap = new HashMap<String,String>();
varMap.put("VAR","123");
varMap.put("OTHER_VAR","234");
JSONObject json = new JSONObject();
String jsonVarMap = varMap.toString().replace("=", ":");
json.put("Variable", jsonVarMap);
System.out.println("JSON " + json);
}
}
Aber gibt es einen besseren Weg? Wie ändere ich die Karte in einen exakten String?
'json.put ("Variable", neue JSONObject (varMap) .toString());'? – Ryan
Verlassen Sie sich niemals auf das Verhalten der toString-Methode ... Es gibt geeignete Methoden zum Serialisieren nach JSON ... – ppeterka
Gibt diesen JSON zurück {"Variable": "{\ VAR \": \ "123 \", \ "OTHER_VAR \": \ "234 \"} "} –