2013-05-21 30 views
0

为了我一直在使用下面的代码来创建一个列表视图:问题的ListView

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

它不会工作now.I不理解可能是什么问题,它应该工作,相同的结构相同的东西... 谢谢

+0

不同的JSON? – Blackbelt

+0

究竟是什么问题?它会崩溃吗?字段是空的? – Gomoku7

+0

是的,领域是空的! JSON是不同的,但我修改了它.. – alandr

回答

1

JSON结构是不同的。

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

{ 
    "contacts":[ 
     { 
     "id":"c200", 
     "name":"Ravi Tamada", 
     "email":"[email protected]", 
     "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" 
     } 
    ] 
} 
0

的结构在两种情况下JSON是不同的。 在working case你有

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

虽然在second case(你不工作的代码)不具有等效的子标签。因此,当您使用第一个代码解析第二个JSON时,您的代码应该会失败并出现解析错误。

有关如何在Android的JSON解析正确的认识,有一个看看JSONReaderHow to parse JSON in Android

也许