2015-12-22 30 views
3

我從我的webservices {root:[{name:abc, surname:xyz}]}得到這個JSON響應,我試圖僅使用標籤顯示響應中的Key:Value。無法顯示代碼名爲1的webservices調用的響應

我使用的附加組件的方法

hi.addComponent(new Label(""+ response.get("/result[0]/ocassion"))); 

但它顯示我空值。我已經關注了codenameone網站上提供的Web服務的視頻。

我應該如何獲得所需的響應才能在UI上顯示。 下面是代號一個MyApplication.java代碼:

InputStreamReader reader = new InputStreamReader(input); 
JSONParser parser = new JSONParser(); 
response = parser.parse(reader); 
System.out.println(""+ response); 
hi.addComponent(new Label(""+ response.get("/result[0]/ocassion"))); 
hi.getComponentForm().revalidate(); 

回答

2

變化parse.parseparse.parseJSON。你必須知道檢索值的關鍵,你可以循環你的迴應如下:

InputStreamReader reader = new InputStreamReader(input); 
JSONParser parser = new JSONParser(); 
response = parser.parseJSON(reader); 

List listResponses = (List) response.get("root"); 
if (listResponse != null) { 
    for (Object listResponse : listResponses) { 
     Map tempHash = (Map) listResponse; 
     hi.addComponent(new Label("Name: " + tempHash.get("name").toString())); 
     hi.addComponent(new Label("Surname: " + tempHash.get("surname").toString())); 
     System.out.println(tempHash.get("name").toString()); //Print abc 
     System.out.println(tempHash.get("surname").toString()); //Print xyz 
    } 
    hi.getComponentForm().revalidate(); 
} else { 
    System.out.println("null value returned"); //Make sure you reference root and be sure it returns proper json 
} 
+1

嗨。感謝那段代碼。它按我想要的方式工作。但現在我正在對標籤進行一些更改,並希望使用多個按鈕,以便按下按鈕時將顯示名稱和姓氏。你能告訴我怎麼做。 –