0

我一直在使用以下代码来创建列表视图:

public class AndroidJSONParsingActivity extends ListActivity {


// url to make request
private static String url = "http://api.androidhive.info/contacts/";

// JSON Node names
private static final String TAG_CONTACTS = "contacts";
private static final String TAG_ID = "id";
private static final String TAG_NAME = "name";
private static final String TAG_EMAIL = "email";
private static final String TAG_ADDRESS = "address";
private static final String TAG_GENDER = "gender";
private static final String TAG_PHONE = "phone";
private static final String TAG_PHONE_MOBILE = "mobile";
private static final String TAG_PHONE_HOME = "home";
private static final String TAG_PHONE_OFFICE = "office";

上面这个有效,但如果我把它改成:

private static String url = "http://kondicioner.al/app/json.php";

    // JSON Node names
    private static final String TAG_CONTACTS = "contacts";
    private static final String TAG_ID = "id";
    private static final String TAG_NAME = "emer";
    private static final String TAG_EMAIL = "mbiemer";
    private static final String TAG_ADDRESS = "telefon";
    private static final String TAG_GENDER = "adresa";
    private static final String TAG_PHONE = "ora";
    private static final String TAG_PHONE_MOBILE = "per";
    private static final String TAG_PHONE_HOME = "dyqan";
    private static final String TAG_PHONE_OFFICE = "statusi";

它现在不起作用。我不明白可能是什么问题,它应该起作用,同样的结构同样的东西......谢谢

4

2 回答 2

1

JSON 结构不同。

这是第一个结构的样子(为简洁起见,我只保留了一条记录):

{
   "contacts":[
      {
         "id":"c200",
         "name":"Ravi Tamada",
         "email":"ravi@gmail.com",
         "address":"xx-xx-xxxx,x - street, x - country",
         "gender":"male",
         "phone":{
            "mobile":"+91 0000000000",
            "home":"00 000000",
            "office":"00 000000"
         }
      }
   ]
}

这就是第二个结构的样子:

{
   "contacts":[
      {
         "id":"12",
         "emer":"Albana",
         "mbiemer":"",
         "telefon":"",
         "adresa":"",
         "ora":"10:13:44",
         "per":"",
         "dyqan":"",
         "statusi":"",
         "orari_transportit":"",
         "data":"15\/4\/2013"
      }
   ]
}
于 2013-05-21T09:25:28.490 回答
0

两种情况下JSON的结构是不同的。在工作情况下,您有

"phone": {
                    "mobile": "+91 0000000000",
                    "home": "00 000000",
                    "office": "00 000000"
                }

而在第二种情况下(您的非工作代码)没有等效的子标签。因此,当您使用第一个 JSON 的代码解析第二个 JSON 时,您的代码应该会因解析错误而失败。

要正确理解如何在 Android 中解析 JSON,请查看JSONReaderHow to parse JSON in Android

于 2013-05-21T09:51:13.493 回答