Ich habe eine JSON-Array, die ich in eine Karte einfügen.Karte ist eine geschweifte Klammern weglassen
for(int i = 0; i < jsonarr.length(); i++){
try {
JSONObject jsonobj = jsonarr.getJSONObject(i);
Iterator<Object> keysItr = jsonobj.keys();
while(keysItr.hasNext()) {
Object key = keysItr.next();
Object value = jsonobj.get((String) key);
map.put((String) key, value);
}
System.out.println(map);
Aber wenn ich die Karte anzeigen, gibt es mir eine Zeichenfolge, in der eine geschweifte geschweifte Klammer fehlt.
Ausgabe
{
subtype=text,
maxlength=22,
values=[
{
"label":"Time",
"value":"two",
"selected":true
},{
"label":"Milk",
"value":"hot"
},{
"label":"sky",
"value":"blue"
}
],
(HERE)
name=text-1496816623336,
description=sa,
className=form-control,
label=Text Field,
type=text,
required=true
}
Ich habe verwendet jackson und Gson auch, aber in diesem Fall waren sie setzen nicht einmal die ganze json in map.It könnte eine dumme Frage, aber dank sein.
EDIT:
Hier wird die JSON verwendet, um die Map
[
{
"type":"select",
"label":"Select",
"className":"form-control",
"name":"select-1496823185891",
"values":[
{
"label":"Option 1",
"value":"option-1",
"selected":true
},{
"label":"Option 2",
"value":"option-2"
},{
"label":"Option 3",
"value":"option-3"
}
]
},{
"type":"text",
"label":"Text Field",
"className":"form-control",
"name":"text-1496823186970",
"subtype":"text"
}
]
Aufruf von 'toString()' auf einer regulären 'java.util.HashMap' druckt * nicht * gültige JSON. Sie müssen es ordnungsgemäß als JSON rendern, indem Sie die JSON-Bibliothek verwenden, die Sie verwenden, und nicht einfach "toString()" auf der Karte aufrufen. – Jesper
Könnten Sie den JSON posten, mit dem die Karte gefüllt wurde? Sie werden übereinstimmen, nicht in der Syntax, sondern im Inhalt. PS: Hinzufügen eines neuen Zeilenumbaus in der Zeichenfolge würde Ihnen eine bessere Sicht auf das Format geben, nichts ist falsch damit – AxelH
@Jesper Ich habe Jackson verwendet, aber es gab mir die Hälfte nicht die komplette JSON. Eigentlich möchte ich diese Karte zur Indexierung elastisch machen. –