无法以代号1显示来自webservices调用的响应

时间:2015-12-22 06:59:31

标签: java codenameone

我从我的webservices获得此JSON响应 {root:[{name:abc, surname:xyz}]}并且我尝试仅使用标签显示响应中的值:

我正在使用添加组件方法

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

但是它显示了我的空值。我已经在codenameone网站上关注了Webservices上的视频。

我应该尝试在UI上显示所需的响应。 以下是来自代号为1的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();

1 个答案:

答案 0 :(得分:2)

parse.parse更改为parse.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
}