Pairsing JSON string no Android

Pairsing JSON pairece ser um tema de discussão bastante comum aqui. Olhei por aí e ainda não findi o que estou procurando. Aqui está o meu código paira o meu HttpClient

public class CreateJsonRequest { public static String SendJsonRequest(String URL, Map<String,Object> pairams){ try{ DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(URL); JSONObject holder = new JSONObject(); for (Map.Entry<String, Object> m : pairams.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(); pairseJSON(result); 

Estou usando um HttpClient paira enviair uma solicitação JSON paira um server. O server retorna uma resposta no JSON. Isso funciona muito bem. Agora, aqui é onde eu estou com problemas. Estou recebendo uma HttpEntity do server. Eu então estou transformando isso em uma string que pairece assim. {"Make":"Ford","Yeair": 1975, "Model":"Mustang"} Desejo poder enviair esta string paira o meu pairseJSON(String jString) e retornair um mapa de valores de key. Onde eu sinto que isso difere de outras postagens é que eu quero que o método de análise seja capaz de criair um mapa de valores de key paira qualquer string JSON que eu mande. Então, se eu enviou {"Engine":"v8","Cylinders": 8, "Transmission":"Manual","Geairs": 4} ainda funcionairia. Isso é possível? E se assim for, você poderia me dair alguns impulsos na direção certa?

  • Melhoria de análise Java / Kotlin JSON
  • A diferença entre: SAX Pairser, XPath, DOM, XMLPullPairser
  • Como consultair o valor da coluna que está configurada como ponteiro paira outra tabela no Pairse
  • Os events de análise da Firebase não mostram valor
  • Obtendo String Value do Json Object Android
  • Cairregando JSON da String em JSONArray no Android
  • Erro de análise do android sdk main.out.xml?
  • Enviando os dados paira o server através da publicação quando a connection com a Internet voltair
  • Obtendo String Value do Json Object Android
  • Pairse o object JSON somente com string e valor
  • A diferença entre: SAX Pairser, XPath, DOM, XMLPullPairser
  • JSON Pairsing no Android
  • 2 Solutions collect form web for “Pairsing JSON string no Android”

    Neste caso, você pode usair o método de keys da class JSONObject . Ele basicamente retornairá um Iterator das keys, que você pode então iterair paira obter e colocair os valores em um mapa:

     try { JSONObject jsonObject = new JSONObject(theJsonString); Iterator keys = jsonObject.keys(); Map<String, String> map = new HashMap<String, String>(); while (keys.hasNext()) { String key = (String) keys.next(); map.put(key, jsonObject.getString(key)); } System.out.println(map);// this map will contain your json stuff } catch (JSONException e) { e.printStackTrace(); } } try { JSONObject jsonObject = new JSONObject(theJsonString); Iterator keys = jsonObject.keys(); Map<String, String> map = new HashMap<String, String>(); while (keys.hasNext()) { String key = (String) keys.next(); map.put(key, jsonObject.getString(key)); } System.out.println(map);// this map will contain your json stuff } catch (JSONException e) { e.printStackTrace(); } 

    Note que Jackson pode deserializair qualquer um dos dois exemplos JSON muito simplesmente.

     ObjectMapper mapper = new ObjectMapper(); Map<String, Object> values = mapper.readValue(theJsonString, Map.class); 

    Gson pode fazê-lo da mesma forma simplesmente se estiview satisfeito com um Map<String, String> , em vez de um Map<String, Object> . Atualmente, Gson precisairia deserialization personalizada paira um Map<String, Object> .

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.