2017-06-23 15 views
-1

マップ位置決定で使用したい緯度の文字列値を整数に変更したい。 私のコードは以下の通りです:JSONオブジェクト文字列を整数に変換する

try { 
     JSONObject jsonObj = new JSONObject(myJSON); 
     peoples = jsonObj.getJSONArray(TAG_RESULTS); 

     for(int i=0;i<peoples.length();i++){ 
      JSONObject c = peoples.getJSONObject(i); 
      String timedate = c.getString(TAG_TIMEDATE); 
      String binno = c.getString(TAG_BINNO); 
      String data1 = c.getString(TAG_DATA1); 
      String data2 = c.getString(TAG_DATA2); 
      String data3 = c.getString(TAG_DATA3); 
      String averagedata = c.getString(TAG_AVERAGEDATA); 
      String latitude = c.getString(TAG_LATITUDE); 
      String longitude = c.getString(TAG_LONGITUDE); 

      HashMap<String,String> trashcan = new HashMap<String,String>(); 
      trashcan.put(TAG_TIMEDATE,timedate); 
      trashcan.put(TAG_BINNO,binno); 
      trashcan.put(TAG_DATA1,data1); 
      trashcan.put(TAG_DATA2,data2); 
      trashcan.put(TAG_DATA3,data3); 
      trashcan.put(TAG_AVERAGEDATA,averagedata); 
      trashcan.put(TAG_LATITUDE,latitude); 
      trashcan.put(TAG_LONGITUDE,longitude); 

      trashcanList.add(trashcan); 
     } 

     ListAdapter adapter = new SimpleAdapter(
       MapsActivity.this, trashcanList, R.layout.list_item, 
       new String[]{TAG_TIMEDATE,TAG_BINNO,TAG_DATA1,TAG_DATA2,TAG_DATA3,TAG_AVERAGEDATA,TAG_LATITUDE,TAG_LONGITUDE}, 
       new int[]{R.id.timedate,R.id.binno, R.id.data1,R.id.data2,R.id.data3,R.id.averagedata, R.id.latitude, R.id.longitude} 
     ); 

     list.setAdapter(adapter); 

    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

私は、次の解決方法を試してみましたが、緯度の値がゼロであることを毎回出てきます。

int latitude1 = jsonObj.getInt("Latitude"); 
+1

'parseFloat'を使って解析しましたか? – Carcigenicate

+0

@Carcigenicate私はこれを試しました:float latitude1 = Float.parseFloat(c.getString( "Latitude")); –

+0

あなたはそれを試して何が起こったのですか? –

答えて

0

緯度とLNGの値が "緯度"

  • のようなものでなければなりません:22.3361462197085、
  • "LNG":114.1725279197085

あなたはプリミティブなintでそれらを置くことができませんまたは整数。あなたはGetDoubleを(文字列名)またはにGetLong(文字列名)をしてみてください、あなたはgetBigDecimal()メソッドを見つけることができない場合

String myJSON = "{\"lat\":\"22.3361462197085\",\"lng\":\"114.1725279197085\"}"; 

    try { 
     JSONObject jsonObj = new JSONObject(myJSON); 

     BigDecimal lat = jsonObj.getBigDecimal("lat"); 
     BigDecimal lng = jsonObj.getBigDecimal("lng"); 

     System.out.println(lat); 
     System.out.println(lng); 

    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

のような別のデータ型を使用することをお勧めします。

+0

値がnullになる –

関連する問題