Android'de json sayısından değere nasıl erişilir?

Json dizesinden 'cod' değerine erişmeye çalışıyorum:

 {"coord":{"lon":73.86,"lat":18.52},"sys":{"message":0.0293,"country":"IN","sunrise":1428972502,"sunset":1429017681},"weather":[{"id":801,"main":"Clouds","description":"few clouds","icon":"02d"}],"base":"stations","main":{"temp":304.301,"temp_min":304.301,"temp_max":304.301,"pressure":951.61,"sea_level":1021.56,"grnd_level":951.61,"humidity":36},"wind":{"speed":2.06,"deg":302.501},
        "clouds":{"all":24},"dt":1428996633,"id":1259229,"name":"Pune","cod":200}

Ancak bu değeri kodumdan alamıyorum. json string'den bu değere erişmek için kullanıyorum kod:

  try{
                   JSONObject jsObject=(new JSONObject(JsonString)).getJSONObject("coord");

                    if(  jsObject.getInt("cod")==200) {

                        i.putExtra("jsn", JsonString);
                        i.putExtra("city", etCity.getText().toString());
                        startActivity(i);
                    }
2

7 cevap

İf durumunda, {"lon": 73.86, "lat": 18.52} dizisindeki "cod" anahtarına erişmeye çalışıyorsunuz. Bir JSONException atar.

Bunu dene :

try{
    JSONObject jsonmain = new JSONOBject(JsonString);
    if(jsonmain.getInt("cod") == 200) {
        i.putExtra("jsn", JsonString);
        i.putExtra("city", etCity.getText().toString());
        startActivity(i);
}
2
katma

İf durumunda, {"lon": 73.86, "lat": 18.52} dizisindeki "cod" anahtarına erişmeye çalışıyorsunuz. Bir JSONException atar.

Bunu dene :

try{
    JSONObject jsonmain = new JSONOBject(JsonString);
    if(jsonmain.getInt("cod") == 200) {
        i.putExtra("jsn", JsonString);
        i.putExtra("city", etCity.getText().toString());
        startActivity(i);
}
2
katma

Jackson'ınız:

{
"coord": {
    "lon": 73.86,
    "lat": 18.52
},
"sys": {
    "message": 0.0293,
    "country": "IN",
    "sunrise": 1428972502,
    "sunset": 1429017681
},
"weather": [
    {
        "id": 801,
        "main": "Clouds",
        "description": "few clouds",
        "icon": "02d"
    }
],
"base": "stations",
"main": {
    "temp": 304.301,
    "temp_min": 304.301,
    "temp_max": 304.301,
    "pressure": 951.61,
    "sea_level": 1021.56,
    "grnd_level": 951.61,
    "humidity": 36
},
"wind": {
    "speed": 2.06,
    "deg": 302.501
},
"clouds": {
    "all": 24
},
"dt": 1428996633,
"id": 1259229,
"name": "Pune",
"cod": 200
}

Anahtar "kod", "kod" içinde iç içe değildir.

Try: new JSONObject(JsonString)).getInt("cod");

1
katma

Jackson'ınız:

{
"coord": {
    "lon": 73.86,
    "lat": 18.52
},
"sys": {
    "message": 0.0293,
    "country": "IN",
    "sunrise": 1428972502,
    "sunset": 1429017681
},
"weather": [
    {
        "id": 801,
        "main": "Clouds",
        "description": "few clouds",
        "icon": "02d"
    }
],
"base": "stations",
"main": {
    "temp": 304.301,
    "temp_min": 304.301,
    "temp_max": 304.301,
    "pressure": 951.61,
    "sea_level": 1021.56,
    "grnd_level": 951.61,
    "humidity": 36
},
"wind": {
    "speed": 2.06,
    "deg": 302.501
},
"clouds": {
    "all": 24
},
"dt": 1428996633,
"id": 1259229,
"name": "Pune",
"cod": 200
}

Anahtar "kod", "kod" içinde iç içe değildir.

Try: new JSONObject(JsonString)).getInt("cod");

1
katma
URL url = new URL(String.format(//url goes here));           
            HttpURLConnection connection = 
                    (HttpURLConnection)url.openConnection();

            connection.addRequestProperty("x-api-key", 
                    context.getString(R.string.open_weather_maps_app_id));

            BufferedReader reader = new BufferedReader(
                    new InputStreamReader(connection.getInputStream()));

            StringBuffer json = new StringBuffer(1024);
            String tmp="";
            while((tmp=reader.readLine())!=null)
                json.append(tmp).append("\n");
            reader.close();

            JSONObject data = new JSONObject(json.toString());

           //This value will be 404 if the request was not
           //successful
            if(data.getInt("cod") != 200){
                return null;
            }

you follow the Create a Weather App on Android

0
katma

Aslında yanlış JSON Nesnesini deniyorsun.

  String cod=(new JSONObject(JsonString)).getJSONObject("code").toString();
                 //you may need to try catch block
                if(  Integer.parseint(cod)==200) {

                   .... Your logic
                }
0
katma

Aslında yanlış JSON Nesnesini deniyorsun.

  String cod=(new JSONObject(JsonString)).getJSONObject("code").toString();
                 //you may need to try catch block
                if(  Integer.parseint(cod)==200) {

                   .... Your logic
                }
0
katma