wake-up-neo.net

Zitat aus der JSONArray-Ausgabe entfernen

Beim erfolgreichen Aufruf bekomme ich den JSONArray mit der Taste "objects" und wieder den testValue mit der Taste "name". Die Ausgabe ist wie:

"Abcd"
"Wxyz"

Mein Code lautet wie folgt:

public void onSuccess(JSONValue val) {
    JSONObject obj = val.isObject();
    JSONArray test = JSONUtil.getJSONArray(test, "objects");
    for (int i = 0; i < test.size(); i++) {
        JSONObject childJSONObject = (JSONObject) test.get(i);
        JSONValue testValue = childJSONObject.get("name");
        System.out.println(testValue);
    }
}

Möchten Sie den Namen wie folgt drucken: (Ohne doppelte Anführungszeichen)

Abcd
Wxyz
7
Ask

1. .replaceAll ()

testValue.toString().replaceAll("\"", "");

Diese Methode ersetzt alle doppelten Anführungszeichen, die in Ihrem Namen vorhanden sind, nicht das erste und das letzte.

Beispiel: "Abcd" wird zu Abcd, aber wenn der Name "Ab" cd "ist, sollte es Ab" cd "sein, je nach Anforderung, aber es wird Abcd. Bedeutet zu sagen, dass alle doppelten Anführungszeichen ersetzt wurden.

2. Teilzeichenfolge ()

Wenn Sie den Ansatz der substring-Methode verwenden möchten, entfernen Sie die ersten und letzten Anführungszeichen aus der Zeichenfolge mit der folgenden Syntax:

testValue.toString().subString(1,testValue.toString().length()-1);

1 - gibt das erste Zeichen der Zeichenfolge an

testValue.toString().length()-1: Gibt das letzte Zeichen der Zeichenfolge an.

Für Ihren Fall ist die .substring()-Methode besser als die .replaceAll(), wenn .getString() nicht funktioniert.

3. .ValueOf () OR .getString ()

Weiß nicht In Ihrem Fall, warum es nicht funktioniert? (Möglicherweise weil der String selbst die Anführungszeichen enthält). Am besten konvertieren Sie den JSONValue in den String als String.ValueOf(testValue);

ODER 

childJSONObject.getString("name");

Ansonsten geben Sie den Vorzug als: 3> 2> 1

13
Vaibhav Jain

Konvertieren Sie den JSONValue zurück in String:

String.ValueOf(testValue);

Oder

childJSONObject.getString("name");

Nach all dem und immer noch mit Zitaten enden - dann auf RegExp zurückgreifen.

testValue.toString().replaceAll("\"", "");
5
Bitmap

gerade

s.replaceAll("\"", "");

entfernt alle Zeichen in Ihrer Zeichenfolge.

oder in deinem Fall

testValue.toString().replaceAll("\"", "");
2
Stefan Beike

sie können den folgenden Code verwenden, um eine Zeichenfolge ohne Anführungszeichen zu erhalten

    JsonObject childJSONObject = new JsonObject(); 
   JSONValue testValue = childJSONObject.get("name").getAsString();

das ergibt die Zeichenkette ohne doppelte Anführungszeichen " " in der Zeichenfolge

1
HariKishore

anführungszeichen in Arrays hängen davon ab, welche JOSN Lib verwendet:

org.codehaus.jettison.json.JSONArray oder [.__

1
user4605712

Dieser Thread ist ziemlich alt, aber ich bin vor einer Stunde auf dasselbe Problem gestoßen und habe die richtige Lösung gefunden. Sie müssen nach dem Typ von JsonValue suchen. Wenn es sich um einen JsonString handelt, können Sie ihn nach JsonString parsen und seine getString () - Methode aufrufen.

if(val.getValueType().equals(JsonValue.ValueType.STRING)) {
  c.setValue(((JsonString) val).getString());
} else {
  c.setValue(val.toString());
}
1
user2070007

Wenn Sie javax.json.JsonArray Verwenden, können Sie den String eines JsonValue so erhalten:

JsonArray array = jsonObject.getJsonArray("languages");
for (int i=0; i<array.size(); i++) {
     System.out.println(array.getJsonString(i).getString());
}
1
Thero

Sie können den Wert als String selbst erhalten, müssen nicht umwandeln oder ersetzen: 

JSONObject childJSONObject = (JSONObject) test.get(i);
String testValue = childJSONObject.getString("name");

Es wird ein String ohne Anführungszeichen zurückgegeben.

Weitere Informationen: JSONObject

1
Amin Abu-Taleb

Angenommen, com.google.gwt.json.client.* (von Fragetags und Verwendung von JSONValue, die sonst nirgends zu finden sind) soll toString() Ihnen eine JSON-Darstellung des Wertes geben.

Hier ist der Wert eine JSONString, daher müssen Sie Folgendes verwenden:

testValue.isString().stringValue()
0
Thomas Broyer

Die beste Option ist die Verwendung der .getString()-Methode von JSONObject oder der .valueOf()-Methode von String. Sie können auch die .replaceAll("\"","") verwenden. Dies hat jedoch einige Probleme, wenn der String selbst " (doppelte Anführungszeichen) enthält. Vermeiden Sie daher die Verwendung der replaceAll () - Methode, um unerwartete Probleme zu lösen.

Wenn Sie jedoch selbst mit Ihrer Hand Code schreiben möchten oder wenn Sie wissen möchten, wie Sie die doppelten Anführungszeichen ohne getString() and .valueOf() löschen können, können Sie dies wie folgt versuchen

testValue.toString().subString(1,testValue.toString().length())

die Unterzeichenfolge wird mit Ausnahme des ersten und letzten Zeichens der Zeichenfolge angegeben. Aber es scheint etwas unordentliches zu sein. 

0
Azeez