【问题标题】:How to extract values from JSONObject in android如何从android中的JSONObject中提取值
【发布时间】:2014-04-27 01:29:28
【问题描述】:

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

【问题讨论】:

  • 解析JSONObject 中所有值的唯一方法是知道所有项目的标签。您最好在 json 中使用数组,而不是将它们命名为 1、2 等。
  • @dcharms 我已经详细说明了我将如何获得该输出.. 如果您有任何想法,请建议我如何制作 JSONArray.. 否则感谢您的努力...

标签: android json arrays jsonobject android-json


【解决方案1】:

希望对您有所帮助

JSONObject jsonObject=new JSONObject(result);

            jsonObject=jsonObject.getJSONObject("1");

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




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

【讨论】:

    【解决方案2】:

    最好创建一个有效的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);
    

    然后读取数组item中的每个元素

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

    【讨论】:

    【解决方案3】:

    要获取您的内部 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");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-02
      • 2020-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多