2017-03-17 5 views
-3

Das ist mein json Wert,Wie bekomme ich JSON-Wert zu Variable?

{"test":"ruslan","status":"OK"} 

Wie "test" Wert erhalten?

Und das ist mein Httpclient Code api

AsyncHttpClient client = new AsyncHttpClient(); 
client.setBasicAuth("user01", "pwd01"); 
client.get("http://localhost/web/api/getsession", new AsyncHttpResponseHandler() { 
     @Override 
     public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { 

     // in this section, I want to store test value from json to a variable 

     @Override 
     public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { 
       Log.d("Status", "failure"); 
      } 
     }); 
+0

1) 'http: // localhost/web /' nicht 2) zur Arbeit zu gehen, wo die Schnur JSON ist in Deine App? Sie müssen zunächst ein 'byte []' in eine Zeichenkette umwandeln. –

Antwort

1

Sie können es tun, wie diese

String json = "{\"test\":\"ruslan\",\"status\":\"OK\"}"; 
    String test = ""; 
    try { 
     JSONObject jsonObject = new JSONObject(json); 
     test = jsonObject.getString("test"); 
    }catch (JSONException je){ 
     je.printStackTrace(); 
    } 
    System.out.println("test : " + test); 
0

Zuerst sollten Sie ur json von Server acces von

DefaultHttpClient httpclient = new DefaultHttpClient(new BasicHttpParams()); 
HttpPost httppost = new HttpPost(http://someJSONUrl/jsonWebService); 
// Depends on your web service 
httppost.setHeader("Content-type", "application/json"); 

InputStream inputStream = null; 
String result = null; 
try { 
    HttpResponse response = httpclient.execute(httppost);   
    HttpEntity entity = response.getEntity(); 

    inputStream = entity.getContent(); 
    // json is UTF-8 by default 
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8); 
    StringBuilder sb = new StringBuilder(); 

    String line = null; 
    while ((line = reader.readLine()) != null) 
    { 
     sb.append(line + "\n"); 
    } 
    result = sb.toString(); 
} catch (Exception e) { 
    // Oops 
} 
finally { 
    try{if(inputStream != null)inputStream.close();}catch(Exception squish){} 
} 

daran anschließen Jetzt hast du dein JSON, na und?

eine JSONObject erstellen:

JSONObject jObject = new JSONObject(result); 

Um

String aJsonString = jObject.getString("test"); 
+0

JSON kommt nicht immer von einer Website –

+0

seit der Typ hat nicht die Quelle des JSON erzählt Ich nahm an, dass es von einem Web-Service kommt @ cricket_007 –

+0

Sicher, aber das zusätzliche Detail sollte nicht wirklich wichtig sein, oder? Die Frage, wie JSON zu analysieren, Daten nicht von einer URL zu holen –

0

Hier eine bestimmte Zeichenfolge zu erhalten, ist die Probe, wie json zu analysieren.

{ 
    "sys": 
    { 
     "country":"GB", 
     "sunrise":1381107633, 
     "sunset":1381149604 
    }, 
    "weather":[ 
     { 
     "id":711, 
     "main":"Smoke", 
     "description":"smoke", 
     "icon":"50n" 
     } 
    ], 

    "main": 
    { 
     "temp":304.15, 
     "pressure":1009, 
    } 
} 

Java-Code

JSONObject sys = reader.getJSONObject("sys"); 
country = sys.getString("country"); 

JSONObject main = reader.getJSONObject("main"); 
temperature = main.getString("temp"); 

Weitere Details This Demo

+0

Warum nicht nur die Frage beantworten? –

+0

@ cricket_007 was sagst du nicht dich zu bekommen? – Roadies

+0

Die Frage zeigte Beispiel JSON fragt, wie man einen Wert bekommt. Dies kann beantworten, wie JSON zu parsen ist, beantwortet aber nicht die Frage, die wirklich gestellt wurde –

Verwandte Themen