1.我有这样的json对象如何才能访问android中的所有值
2.在任何人投票之前,我想说我已经搜索了stackoverflow的类似示例,但这些示例包含JSONObject,然后是JSONArray
在我的情况下,一切都是JSONObject,所以我有点困惑
{
"1":
{"sno":"10","latitude":"31.249441437085455","longitude":"75.70003598928452"},
"2":
{"sno":"11","latitude":"31.249398442090207","longitude":"75.70003397762775"}
}
这就是我如何使用JSONObject
1.Below代码返回输出,就像所有JSONObject一样
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);
}
答案 0 :(得分:6)
希望这可以帮助你
JSONObject jsonObject=new JSONObject(result);
jsonObject=jsonObject.getJSONObject("1");
Double lat=jsonObject.getDouble("latitude");
Toast.makeText(getBaseContext(),""+ lat, Toast.LENGTH_LONG).show();
答案 1 :(得分: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);
}
答案 2 :(得分:1)
要获取一个内部JSONObject元素,您需要使用getJSONObject(String key)从外部元素中获取它。
示例代码:
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");