Análisis JSON parece ser un tema de discusión bastante común aquí. He mirado alrededor y todavía no he encontrado lo que estoy buscando. Aquí está mi código para mi HttpClientAnálisis de cadena JSON en Android
public class CreateJsonRequest {
public static String SendJsonRequest(String URL, Map<String,Object> params){
try{
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(URL);
JSONObject holder = new JSONObject();
for (Map.Entry<String, Object> m : params.entrySet()){
try {
holder.put(m.getKey(), m.getValue());
}
catch (JSONException e) {
Log.e("Hmmmm", "JSONException : "+e);
}
}
StringEntity se;
se = new StringEntity(holder.toString());
httpPost.setEntity(se);
httpPost.setHeader("Accept", "text/json");
httpPost.setHeader("Content-type", "text/json");
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
if(entity != null){
final JSONObject respObject = new JSONObject(EntityUtils.toString(entity));
String result = respObject.toString();
parseJSON(result);
estoy usando un HttpClient para enviar una petición a un servidor JSON. El servidor luego devuelve una respuesta en JSON. Esto funciona genial Ahora aquí es donde estoy teniendo problemas. Recibo una HttpEntity del servidor. Estoy convirtiendo eso en una cadena que se ve así. {"Make":"Ford","Year": 1975, "Model":"Mustang"}
Deseo poder enviar esta cadena a mi método parseJSON(String jString)
y devolver un mapa de valores clave. Donde siento que esto difiere de otras publicaciones es que quiero que el método de análisis pueda crear un mapa de valores clave para cualquier cadena JSON que le envíe. Si lo enviara {"Engine":"v8","Cylinders": 8, "Transmission":"Manual","Gears": 4}
, seguiría funcionando. ¿Es esto factible? Y si es así, ¿podría darme algunos empujones en la dirección correcta?
intente utilizar la biblioteca GSON de Google, ¡es increíble! – binnyb
Esto no es 'Android', ¿verdad? ¿O me estoy perdiendo algo? Parece completamente irrelevante que lo uses en una aplicación de Android. – keyser