Ich habe eine JSON-Zeichenfolge mit erstellt, die gültig ist. Ich habe folgenden Weg verwendet, um das Json-Objekt zu erstellen.Gson malformedJsonException beim Casting von JSON-String zu Objekt
Map myMap=new HashMap();
myMap.put("dryRunTest",dryRunTestObj);
myMap.put("port",22);
myMap.put("Repository",RepositoryObj);
etc...
Map temp = new HashMap();
temp.put("configuration",myMap);
new GsonBuilder().setPrettyPrinting().create().toJson(temp);
//This gave me the below Json Object that would write to a file.
{
"configuration": {
"dryRunTest": {
"id": null,
"defaultName": "sample.xml",
"ParamsMap": null,
"defaultVersion": "1.2",
"dryRunTestOn": true
},
"port": 2323,
"ip": "11.11.11.111",
"configFile": "config.json",
"Name": "007",
"URL": "http://11.111.111.51/ma/api/ag/",
"Password": "123",
"configDirectory": "sss",
"platform": "Windows7",
"Repository": {
"repositoryURL": "http://11.11.111.11/"
}
}
}
Ich habe versucht, wie folgende Repository
-Objekt-Repository-JSON-String zu erstellen.
class Repository{
String repositoryURL;
getter and setters
}
Dann desalinize i Json-Objekt,
Map mymap= new Gson().fromJson(JsonObjectReadFromFile(aboveString), HashMap.class);
RepositoryJsonStringvalue = mymap.get("Repository");
Repository r=new Gson().fromJson(RepositoryJsonStringvalue, Repository.class);
Es zurückkehren folgende Ausnahme serialisiert.
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 21
Scheint, wie Problem mit ihm repositoryURL
Wert war aber ich hatte denselben Wert in einer anderen Top-Level-Attribut URL=http://11.11.111.11/
und dann Werte zu bekommen, aber wenn es innerhalb Objekts setzen geben Sie es wirft, dass error.Please mich wissen lassen, wie sie zu beheben Dies.
Hinweis: Ich fand Problem in repositoryURL
Attribute war, wenn ich Sonderzeichen entfernen : \
aus string i zum Repository werfen kann object.So i wie i URL http://11.11.111.11/
um JSON-Objekt setzen wissen möchte, kann meine sogar obiges Objekt ist gültig Json.
Vielen Dank für Ihre reply.I hilft die Post mit mehr Details aktualisiert bitte refer.I werfen wollen 'Repository' object.seems wie Problem' wurde repositoryURL' es einige ungekündigten Werte enthält . – gihan
Eine weitere Möglichkeit zum Parsen und Abrufen des Repository-Objekts wurde hinzugefügt. – notionquest
Danke, dass Sie meine Zeit gespeichert haben.Es funktioniert gut.Nachklärungen gibt es irgendeine Beziehung mit überschreiben 'toString' für JSN Serialisierung und Deserialisierung.oder es ist genug setzen' @ SerializedName' auf Feld.Können Sie bitte erklären, warum mein vorheriger Code Ausnahmen bekam . – gihan