【问题标题】:Error parsing JSON array in Java/Android在 Java/Android 中解析 JSON 数组时出错
【发布时间】:2013-01-18 06:05:16
【问题描述】:

我最近在我的服务器上设置了一个 php 页面,该页面贯穿我的数据库并将其输出到页面上。

JSONObject json = JSONfunctions.getJSONfromURL("http://abc.com/getjson.php");

        try{

            JSONArray  myArray = json.getJSONArray("date");

            for(int i=0;i<myArray.length();i++){                        
                HashMap<String, String> map = new HashMap<String, String>();    
                JSONObject e = myArray.getJSONObject(i);

                map.put("id",  String.valueOf(i));
                map.put("date", "date name:" + e.getString("date"));
                map.put("activity", "activity: " +  e.getString("activity"));
                mylist.add(map);            
            }

http://abc.com/getjson.php 输出:

[{"date":"2012-04-23","activity":"gym"},{"date":"2012-04-24","activity":"walkin‌​g"}]

【问题讨论】:

标签: java android json


【解决方案1】:

解析json字符串以获取日期:

JSONArray  myArray=JSONfunctions.getJSONfromURL("http://abc.com/getjson.php");

for(int i=0;i<myArray.length();i++){

JSONObject  myobj = myArray.getJSONObject(i);

 // get date here
  String strdate=myobj.getString("date");

 // get activity here
  String stractivity=myobj.getString("activity");
}

因为当前的json字符串结构是JSONArray -&gt; JSONObject -&gt; key-value

编辑:您需要将 getJSONfromURL 方法的返回类型更改为 JSONArray 而不是 JSONObject,因为您从服务器获取 JSONArray 作为根元素而不是 JSONObject

【讨论】:

  • 我相信问题出在这里: JSONArray myArray=new JSONArray("your json string"); myArray 为空,因为我从网络获取的 JSON 中不存在“您的 json 字符串”。
  • @EGHDK :“您的 json 字符串”表示您从服务器获取的当前字符串,例如问题“[{”日期”:“2012-04-23”,“活动”:“健身房"},{"date":"2012-04-24","activity":"walking"}]" 将其替换为 "your json string"
  • Eclipse 中的错误:运算符 - 未定义参数类型 String, int
  • @EGHDK:请发布您的最新代码以及您在哪里收到此错误?
  • "json 无法解析" on "JSONObject myobj = json.getJSONObject(i);"我还需要那条线吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-03
相关资源
最近更新 更多