En mi aplicación puedo recuperar los resultados de búsqueda en formato JSON de una herramienta externa llamada Google Search Appliance(GSA).

El resultado en JSON de GSA es muy grande y por lo tanto prefiero modificar el GSA resultado en JSON en algo más adecuado para mostrar en mi página web.

Si me muestre directamente la GSA resultado en JSON sin formato en mi código de java no estoy ante cualquier problemas de codificación en mi página web.

Pero si puedo cambiar el formato de los grandes GSA resultado en JSON en un adecuado formato JSON en mi servlet de java de código que estoy enfrentando problemas de codificación.
Ejemplo – “All Access Pass” se muestra como ÂAll Access PassÂ.

Puedo devolver la modificación de json desde mi servlet de la página web, utilice el siguiente código

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

He intentado cambiar el conjunto de caracteres a iso-8859-1 pero no hace ninguna diferencia.

Puedo editar mi original JSON de la siguiente manera –

        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){}

La modificación a la original JSON que voy aquí se puede hacer en JavaScript que iba a solucionar mi problema, pero es algo que no quiero hacer.

  1. Hay una forma de averiguar el formato de codificación del texto en el original GSA JSON?
  2. ¿Cómo puedo evitar que el código java de cambiar la codificación de texto en el original GSA JSON?

Por favor me ayude a entender lo que está pasando aquí y cómo puedo evitar este problema.

  • Me gustaría ser curioso cómo el original JSON formatos de los mismos personajes. ¿Qué es el «adecuado formato JSON» en que se convierte? ¿Cómo convertir?
  • La única diferencia en mi código es que cuando no mostrar el original JSON, me puse la respuesta de tipo de contenido como («application/json»). Pero si yo hago lo mismo con la modificación de JSON me estaba poniendo «??» personajes así que me puse como «application/json;charset=UTF-8».
  • De esas citas provienen por lo general de Microsoft apps… Así que busqué en google un poco y encontré este, que hace que me pregunte si usted necesita leer acerca de «Microsoft Windows-1252 codificación de caracteres». O tal vez estoy lejos…
  • Luego me enteré de este… (el chico estoy aburrido ahora!!!)
  • Tengo que convertir el original JSONObject Cadena en org.apache.cabestrillo.commons.json.JSONObject. Entonces me iterar a través de los objetos individuales dentro de los pares de nombre y valor en el JSON y la pusimos en otro org.apache.cabestrillo.commons.json.JSONObject objeto. eg – newJSONObject.put(«título»,originalJSON.get(«T»).toString());
  • k estoy editando mi pregunta.

InformationsquelleAutor Hari Reddy | 2013-03-20

1 Comentario

  1. 3

    La codificación de texto problema que estaba sucediendo, ya que la llamada que se hace a la GSA servidor Apache HTTP Cliente fue el uso de un contenido por defecto la codificación de caracteres conjunto de iso-8859-1 pero la GSA servidor espera que el Cliente HTTP de petición y de respuesta para estar en UTF-8 de codificación.

    Este problema se resuelve después de la configuración de la codificación de HTTPClient –

    HttpClient httpClient = new HttpClient();
    httpClient.getParams().setContentCharset("UTF-8");

    Y el servlet respuesta codificación a

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

Dejar respuesta

Please enter your comment!
Please enter your name here