如何在android中从JSONObject中提取值

如何在android中从JSONObject中提取值,android,json,arrays,jsonobject,android-json,Android,Json,Arrays,Jsonobject,Android Json,1.我有这样的json对象我如何才能访问android中的所有值 2.在任何人投票否决之前,我想说我已经在stackoverflow中搜索了类似的示例,但这些示例包含JSONObject,然后是JSONArray 3.在我的例子中,一切都是JSONObject,所以我有点困惑 { "1": {"sno":"10","latitude":"31.249441437085455","longitude":"75.70003598928452"}, "2": {"sno":"11","latitud

1.我有这样的json对象我如何才能访问android中的所有值
2.在任何人投票否决之前,我想说我已经在stackoverflow中搜索了类似的示例,但这些示例包含JSONObject,然后是JSONArray
3.在我的例子中,一切都是JSONObject,所以我有点困惑

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

"2":
{"sno":"11","latitude":"31.249398442090207","longitude":"75.70003397762775"}
}
我就是这样来到JSONObject的
1.下面的代码返回我的输出,就像所有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);
}
$select_rows=“从活动中选择sno、纬度、经度,其中username='$username';
如果($result=mysql\u查询($select\u行)){
$num_of_fields=mysql_num_fields($result);
$num_of_rows=mysql_num_rows($result);
$i=0;
$j=1;
while($retrieve=mysql\u fetch\u数组($result)){
对于($i=0;$i<$num_of_字段;$i++){
$field\u name=mysql\u field\u name($result,$i);
$object[$j][$field\u name]=$retrieved[$field\u name];
}
$j++;
}
echo json_encode($object);
}

要获取一个内部JSONObject元素,需要使用getJSONObject(字符串键)从外部元素获取它

示例代码:

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");

希望这对您有所帮助

JSONObject jsonObject=new JSONObject(result);

            jsonObject=jsonObject.getJSONObject("1");

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




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

最好创建一个有效的
JSONArray
,使事情变得更简单。创建
JSON
字符串时,不要附加索引。我相信您正在从sqlite读取数据并生成
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);
 }
for(int index=0;index
解析
JSONObject
中所有值的唯一方法是了解所有项的标记。最好在json中使用数组,而不是将它们命名为1、2等。@dcharms我已经详细阐述了如何获得该输出。如果您有任何想法,请建议我如何制作JSONArray。否则,谢谢您的efforts…嗨,你能看看这篇帖子吗..我没有收到任何回复。。