2017-03-17 42 views
-3

这是我的JSON值,如何获取JSON值给变量?

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

如何获得 “测试” 的价值?

这是我HttpClient的代码存取权限的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://本地主机/网络/'是行不通2)如果是JSON字符串你的应用?你似乎需要首先将一个byte []转换为一个字符串。 –

回答

1

,你可以做这样的

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

首先通过连接到它

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

从服务器获取乌尔JSON现在你有你的JSON,那么是什么?

创建一个JSONObject:

JSONObject jObject = new JSONObject(result); 

为了得到一个特定的字符串

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

JSON并不总是来自网站 –

+0

,因为这个家伙还没有告诉json的来源,我认为它来自于web服务@ cricket_007 –

+0

当然,但是额外的细节应该并不重要,对吧?这个问题问如何解析JSON,而不是从一个URL获取数据 –

0

下面是如何解析JSON的样品。

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

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

Java代码

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

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

更多细节见This Demo

+0

为什么不只是回答这个问题? –

+0

@ cricket_007你说什么不让你? – Roadies

+0

问题显示示例JSON询问如何获取一个值。这可能回答如何解析JSON,但不回答真正问到的问题 –