Org.json.JSONException: Objeto no terminado en el carácter 14

El mensaje de error que tengo es:

org.json.JSONException: Unterminated object at character 14 of {address: yo test} 

Creo que debería escapar de la cadena, pero en vano después de probar todo el método en StackOverflow.
Aquí está mi código, muchas gracias por cualquier ayuda:

 // src/Activity.java @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); try{ String str = getString(R.string.data); JSONObject jsonObj = new JSONObject(str); } catch(Exception e){ Log.d("iLoveDrinkActivity", e.toString()); // org.json.JSONException: Unterminated object at character 14 of {address: yo test} } } 

Y…

 // res/strings.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="data">{"address": "yo test"}</string> </resources> 

Si la "dirección" es algo más como "prueba" o "yo" o "123", todo funciona bien. ¡¡Gracias de nuevo!!

La única solución que puedo encontrar ( Android: Json cadena con espacios da "Unterminated objeto en" excepción ) es reemplazar las citas en su json con citas de escape

 <string name="data">{"address": \"yo test\"}</string> 

Aunque es molesto. Me pregunto si hay una solución mejor.

EDITAR:

Después de un poco más de excavación parece que el culpable es el método getString que afirma

Devuelve el valor de cadena asociado con un ID de recurso particular. Se despojará de cualquier información de texto con estilo.

El despojado de texto con estilo se produce en código nativo por lo que no puedo ver por qué arroja las comillas, pero parece que sí.

Utilizar

 <string name="data">{"address": \"yo test\"}</string> 

De lo contrario json parser procesará la cadena {address: yo test} , que no es una cadena json válida, mientras que {address: "yo test"} es.

  • Obtener el nombre de la clave jsonarray
  • Android - java.lang.RuntimeException: Excepción Stub al analizar String en JSONObject
  • ¿Cómo puedo hacer una petición Volley JSONObject con un objeto personalizado como parámetro?
  • Android usando MSGPack Core y Jackson Mapper - clase de decodificación variable de tipo desconocido
  • Llame a la variable de tipo de referencia WCF
  • El método más simple para convertir Json a Xml
  • Obtener JSONObject de JSONArray
  • Cómo analizar JSON en Android
  • Jackson JsonParseException: Byte medio de UTF-8 no válido
  • Cómo analizar una clave JSON dinámica en un resultado anidado JSON?
  • Obtenga un objeto json simple usando retrofit 2
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.