2014-03-06 29 views
0

我在这做一个webservice应用程序我得到json响应,我解析这个json,我显示在listview.Right结果现在我想解析与杰克逊库。我试过有些远,但我没有得到任何东西。如何解析json使用杰克逊android

代码:

private static class Holder 
    { 
     ArrayList<UpcomingPojo> holderlist; 
    } 


ObjectMapper objmapper=new ObjectMapper(); 
       Holder holderPojo =objmapper.readValue(jsonResponse,Holder.class); 

        UpcomingPojo contact = holderPojo.holderlist.get(0); 
        String name=contact.getName(); 

POJO:

@JsonIgnoreProperties(ignoreUnknown=true) 
public class UpcomingPojo { 

    String no,name,desc; 

    public String getNo() { 
     return no; 
    } 

    public String getName() { 
     return name; 
    } 


} 

JSON:

[ 

    { 
     "no":"12000", 
     "name":"ram" 

    }, 
    { 
     "no":"12532", 
     "name":"ravi" 
    } 
] 

回答

0

这是使用杰克逊库解析JSON的代码。

  try { 
      DefaultHttpClient httpClient = new DefaultHttpClient(); 
      try { 
       HttpResponse response = httpClient 
         .execute(new HttpGet(url)); 
       InputStream is = response.getEntity().getContent(); 

       JsonFactory factory = new JsonFactory(); 
       JsonParser jsonParser = factory.createJsonParser(is); 
       JsonToken token = jsonParser.nextToken(); 

       if (token == JsonToken.START_ARRAY) { 
        while (token != JsonToken.END_ARRAY) { 

         token = jsonParser.nextToken(); 
         if (token == JsonToken.START_OBJECT) { 
          while (token != JsonToken.END_OBJECT) { 

           token = jsonParser.nextToken(); 
           if (token == JsonToken.FIELD_NAME) { 
            String objectName = jsonParser 
              .getCurrentName(); 
            jsonParser.nextToken(); 
            if (0 == objectName 
              .compareToIgnoreCase("no")) { 
             Log.d("","no="+jsonParser.getText()); 
            } else if (0 == objectName 
              .compareToIgnoreCase("name")) { 
             Log.d("","name="+jsonParser.getText()); 
            } 


           } 


          } 

         } 




        } 
       } 

      } catch (Exception e) { 
       e.printStackTrace(); 

      } 

     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      Log.d("", "exception2"); 

     } 
+0

我试过这个我得到了结果谢谢 – skyshine