2014-04-27 48 views
2

1.我有這樣的json對象我如何獲得android中的所有值的訪問
2.before任何人投票,我想說我已經搜索了相似的stackoverflow類似的例子,但這些例子中包含的JSONObject然後JSONArray
3.Here於我而言一切都是JSONObject的,所以我有點困惑如何從android中的JSONObject中提取值

{ 
"1": 
{"sno":"10","latitude":"31.249441437085455","longitude":"75.70003598928452"}, 

"2": 
{"sno":"11","latitude":"31.249398442090207","longitude":"75.70003397762775"} 
} 

這是我它是如何製成的JSONObject
1.Below代碼返回給我的輸出就像所有的JSONObj ect
2.是否有任何方法使「1」和「2」爲JSONArray?

$select_rows = "select sno,latitude,longitude from activities where username='$username'"; 
if ($result = mysql_query($select_rows)) { 

$num_of_fields = mysql_num_fields($result); 
$num_of_rows = mysql_num_rows($result); 

$i = 0; 

    $j = 1; 

    while ($retrieved = mysql_fetch_array($result)) { 

     for ($i = 0; $i < $num_of_fields; $i++) { 

      $field_name = mysql_field_name($result, $i); 

      $object[$j][$field_name] = $retrieved[$field_name]; 
     } 
     $j++; 
    } 
    echo json_encode($object); 
} 
+1

的唯一方法解析「JSONObject」中的所有值都知道所有項目的標籤。你最好在你的json中使用數組,而不是將它們命名爲1,2等。 – dharms

+0

@dcharms我詳細說明了如何得到那個輸出結果..你能否建議我如何使JSONArray如果你有任何想法。 。否則,感謝您的努力...... – phpnerd

回答

6

希望這可以幫助你

JSONObject jsonObject=new JSONObject(result); 

      jsonObject=jsonObject.getJSONObject("1"); 

      Double lat=jsonObject.getDouble("latitude"); 




      Toast.makeText(getBaseContext(),""+ lat, Toast.LENGTH_LONG).show(); 
+0

感謝您的努力 – phpnerd

+0

非常感謝您的回答.-- !! –

1

要獲得您的內部JSONObject元素之一,您需要使用getJSONObject(String key)從外部JSONObject元素獲取它。

示例代碼:

JSONObject item1 = myJson.getJSONObject("1"); 
//item1 now contains {sno:10,latitude:31.2...etc} 
//now you can get the individual values out of the resulting JSON Object 
//for example, getting the latitude 
double lat = item1.getDouble("latitude"); 
5

更好地創造一個有效JSONArray,使事情變得更容易。當您創建JSON字符串時,不要附加索引。我相信你正在從sqlite讀取數據並生成JSON字符串。

還將外部{(花括號)更改爲[(方括號)以表示爲Array元素。所以,你的JSON字符串會是這樣

[ 
{ 
    "sno": "10", 
    "latitude": "31.249441437085455", 
    "longitude": "75.70003598928452" 
}, 
{ 
    "sno": "11", 
    "latitude": "31.249398442090207", 
    "longitude": "75.70003397762775" 
} 
] 

然後,您可以簡單地獲取其作爲JSONArray

JSONArray jsonArray = new JSONArray(jsonString); 

然後閱讀數組項的每個元素

for(int index = 0;index < jsonArray.length(); index++) { 
    JSONObject jsonObject = jsonArray.getJSONObject(index); 
} 
+0

嗨,你可以請看看這篇文章..我沒有得到任何迴應.. http://stackoverflow.com/questions/23319920/marker-is-not-adding-properly-while-add-through-for-loop – phpnerd