2016-07-13 3 views
-5

Давайте предположим, что я получаю JSON, как это, как я могу получить значение GBP в этом формате JSON благодаряКак я могу получить значение JSON

{ 
    "time":{ 
     "updated":"Jul 13, 2016 10:14:00 UTC", 
     "updatedISO":"2016-07-13T10:14:00+00:00", 
     "updateduk":"Jul 13, 2016 at 11:14 BST" 
    }, 
    "disclaimer":"This data was produced from the CoinDesk Bitcoin Price Index (USD). Non-USD currency data converted using hourly conversion rate from openexchangerates.org", 
    "bpi":{ 
     "USD":{ 
     "code":"USD", 
     "symbol":"$", 
     "rate":"667.0690", 
     "description":"United States Dollar", 
     "rate_float":667.069 
     }, 
     "GBP":{ 
     "code":"GBP", 
     "symbol":"£", 
     "rate":"502.3230", 
     "description":"British Pound Sterling", 
     "rate_float":502.323 
     }, 
     "EUR":{ 
     "code":"EUR", 
     "symbol":"€", 
     "rate":"602.4634", 
     "description":"Euro", 
     "rate_float":602.4634 
     } 
    } 
} 
+0

Давайте предположим, что вам удалось найти этот сайт, как вы можете оставить свой вопрос правильно, спасибо. – Razgriz

ответ

0

Вы должны сделать это так:

String jsonString = "{\n" + 
       "\t\"time\": {\n" + 
       "\t\t\"updated\": \"Jul 13, 2016 10:14:00 UTC\",\n" + 
       "\t\t\"updatedISO\": \"2016-07-13T10:14:00+00:00\",\n" + 
       "\t\t\"updateduk\": \"Jul 13, 2016 at 11:14 BST\"\n" + 
       "\t},\n" + 
       "\t\"disclaimer\": \"This data was produced from the CoinDesk Bitcoin Price Index (USD). Non-USD currency data converted using hourly conversion rate from openexchangerates.org\",\n" + 
       "\t\"bpi\": {\n" + 
       "\t\t\"USD\": {\n" + 
       "\t\t\t\"code\": \"USD\",\n" + 
       "\t\t\t\"symbol\": \"$\",\n" + 
       "\t\t\t\"rate\": \"667.0690\",\n" + 
       "\t\t\t\"description\": \"United States Dollar\",\n" + 
       "\t\t\t\"rate_float\": 667.069\n" + 
       "\t\t},\n" + 
       "\t\t\"GBP\": {\n" + 
       "\t\t\t\"code\": \"GBP\",\n" + 
       "\t\t\t\"symbol\": \"£\",\n" + 
       "\t\t\t\"rate\": \"502.3230\",\n" + 
       "\t\t\t\"description\": \"British Pound Sterling\",\n" + 
       "\t\t\t\"rate_float\": 502.323\n" + 
       "\t\t},\n" + 
       "\t\t\"EUR\": {\n" + 
       "\t\t\t\"code\": \"EUR\",\n" + 
       "\t\t\t\"symbol\": \"€\",\n" + 
       "\t\t\t\"rate\": \"602.4634\",\n" + 
       "\t\t\t\"description\": \"Euro\",\n" + 
       "\t\t\t\"rate_float\": 602.4634\n" + 
       "\t\t}\n" + 
       "\t}\n" + 
       "}"; 

     try { 
      JSONObject jsonObject = new JSONObject(jsonString); 
      JSONObject jGbpObject = jsonObject.getJSONObject("bpi").getJSONObject("bpi"); 
      Log.i("GBP", jGbpObject.toString()); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

Надеюсь, это поможет вам.

0

JSONObject обеспечивает доступ к ряду различных типов данных, в том числе вложенной JSONObjects и JSONArrays, используя JSONObject.getJSONObject(String), JSONObject.getJSONArray(String).

вам нужно сделать что-то вроде этого:

разбирает данные JSON с соответствующим URL-адресу, а затем -

JSONObject mainJsonObject = getJSONfromURL(URL); 
JSONObject bpi = mainJsonObject.getJSONObject("bpi"); 
JSONObject gbp = bpi.getJSONObject("GBP"); 
String code = gbp.getString("code"); 
0

Скажем, "myjsonObject" содержит ваш JSONObject. Затем вы можете получить значения следующим образом:

JsonObject bpiObject = myjsonObject.getJSONObject ("bpi");

JsonObject gbpObject = ibpObject.getJSONObject ("GBP");

Затем вы можете получить отдельные значения из «gbpObject».

0

Чтобы разобрать это, вам нужно сначала понять json. В JSON мы имеем объекты JSON, массивы JSON в качестве компонентов упаковки.

{ //this right here is the top level object which wraps your whole data 
"time": {//this right here is the inner object called time 
    "updated": "Jul 13, 2016 10:14:00 UTC", 
    "updatedISO": "2016-07-13T10:14:00+00:00",//the object may contain another object, array and may as contain a entity as string 
    "updateduk": "Jul 13, 2016 at 11:14 BST" 
}, 
"disclaimer": "This data was produced from the CoinDesk Bitcoin Price Index (USD). Non-USD currency data converted using hourly conversion rate from openexchangerates.org", 
"bpi": {//this objects contains three more objects 
    "USD": { 
     "code": "USD", 
     "symbol": "$", 
     "rate": "667.0690", 
     "description": "United States Dollar", 
     "rate_float": 667.069 
    }, 
    "GBP": { 
     "code": "GBP", 
     "symbol": "£", 
     "rate": "502.3230", 
     "description": "British Pound Sterling", 
     "rate_float": 502.323 
    }, 
    "EUR": { 
     "code": "EUR", 
     "symbol": "€", 
     "rate": "602.4634", 
     "description": "Euro", 
     "rate_float": 602.4634 
    } 
} 
} 

Ваш JSON содержит объект верхнего уровня, который оборачивает два объекта «время», «BPI» и строка «описание». Получить верхний объект уровня и обернуты данные как:

try { 
     JSONObject toplevel_jsonObject = new JSONObject(YOUR_JSON_STRING); 
     JSONObject time_jsonObject=toplevel_jsonObject.getJSONObject("time"); 
     String updated=time_jsonObject.getString("update"); 
     ... 
     //get the other objects and string in the same fashion 
    } 
    catch (JSONException e) 
    { 

    } 
0
JsonObject mResponseJson=new JsonObject(response); 
JsonObject mBpiObj=mResponseJson.getJSONObject("bpi"); 
JsonObject mGBPObj=mBpiObj.getJSONObject("GBP"); 

String code=mGBPObj.getString("code"); 
String symbol=mGBPObj.getString("symbol"); 
String rate=mGBPObj.getString("rate"); 
String description=mGBPObj.getString("description"); 
String rate_float=mGBPObj.getString("rate_float"); 
Смежные вопросы