java JSON-text encoding Problem

In meiner Anwendung, die ich abrufen Suchergebnisse im JSON-format von einem externen tool namens Google Search Appliance(GSA).

JSON-Ergebnis von GSA ist sehr groß und deshalb ziehe ich zum ändern der GSA JSON-Ergebnis in etwas mehr geeignet für die Anzeige auf meiner Webseite.

Wenn ich direkt Anzeige der GSA JSON-Ergebnis, ohne Formatierung in meinem java-code bin ich nicht vor ein encoding-Fehler auf meiner Webseite.

Aber wenn ich das format der große GSA JSON-Ergebnis in eine passende JSON-format in meinem servlet java-code, die ich bin vor encoding-Probleme.
Beispiel - “All Access Pass” angezeigt bekommt, wie ÂAll Access PassÂ.

Ich zurück geändert json aus meinem servlet auf der Webseite verwenden Sie die folgenden code -

response.setContentType("application/json;charset=UTF-8");

Ich habe versucht, die änderung der Zeichenkodierung iso-8859-1 aber es macht keinen Unterschied.

Bearbeite ich meine original-JSON in der folgenden Art und Weise -

        String responseText = getMethod.getResponseBodyAsString();

        JSONObject resultJSON = new JSONObject();
                try {

                    JSONObject jsonObj = new JSONObject(responseText);

                    JSONArray resultJsonArray = jsonObj
                            .getJSONArray("RES");

                    JSONObject searchResultJSON = null;

                    for (int iCnt = 0; iCnt < resultJsonArray.length(); iCnt++) {

                        searchResultJSON = new JSONObject();

                        JSONObject obj = resultJsonArray.getJSONObject(iCnt);
                        JSONObject metaTagObj = obj
                                .getJSONObject("MT");

                        if (metaTagObj.has(("title"))) {
                         searchResultJSON.put("title",metaTagObj.get("title").toString());
                        }
             resultJSON.accumulate("RES", searchResultJSON);
    }
   response.setContentType("application/json;charset=UTF-8"); 
   response.getWriter().print(resultJSON);

    }catch(JSONException e){}

Die Modifikation der ursprünglichen JSON, die werde ich hier getan werden kann, in JavaScript, das würde mein problem lösen, aber es ist etwas, was ich nicht tun wollen.

  1. Ist es ein Weg, um herauszufinden, das encoding-format der text in der ursprünglichen GSA JSON?
  2. Wie kann ich vermeiden, dass der java-code aus ändern der text-Codierung in die original GSA JSON?

Bitte helfen Sie mir zu verstehen, was ist hier Los und wie kann ich dieses problem vermeiden.

Ich wäre neugierig, wie die original JSON-Formate die gleichen Zeichen. Was ist der "passende JSON-format", in dem Sie es zu konvertieren? Wie rechnet man es?
Der einzige Unterschied in meinem code ist, dass wenn ich die original JSON, habe ich die Antwort content-Typ als ("application/json"). Aber wenn ich tun die gleiche Sache mit der JSON geändert, ich war immer "??" Zeichen, damit ich ihn als "application/json;charset=UTF-8".
Diese Zitate stammen aus dem Microsoft apps... Also habe ich ein wenig gegoogelt und gefunden, dieser, das macht mich Frage mich, wenn Sie brauchen, um Lesen Sie über die "Microsoft s Windows-1252-Zeichen-Kodierung". Oder vielleicht bin ich auch Weg...
Dann fand ich dieser... (junge, ich langweile mich jetzt!)
Ich konvertieren Sie die ursprüngliche JSONObject String in org.apache.sling.Unterhaus.json.JSONObject. Dann habe ich Durchlaufen der einzelnen Objekte innerhalb des name-Wert-Paare auf dem JSON und legen Sie es in eine andere org.apache.sling.Unterhaus.json.JSONObject-Objekt. eg - newJSONObject.put("title",originalJSON.get("T").toString());

InformationsquelleAutor Hari Reddy | 2013-03-20

Schreibe einen Kommentar