2015-12-08 4 views
0

Я только начал работать с библиотекой Джексона, и я не знаю, как разбирать мои данные. Может ли кто-нибудь помочь?Анализ с использованием Jackson Parser

Вот мой ответ ... JSON

{"flag":"1", 
"data":[{"categoty_id":"150","category_name":"Baby &Kids"},{"categoty_id":"151","category_name":"Books & Comics"},{"categoty_id":"152","category_name":"Collectibles & Antiques"},{"categoty_id":"153","category_name":"Electronics"} ...and so on 

Для разбора данных я использую следующие

try { 
          ArrayList<NameValuePair> parameters = new ArrayList<NameValuePair>(); 
          parameters.add(new NameValuePair("store_id", "1")); 

          Log.e("Cat", "start querying..."); 
          final String response = GetResponse.execPostScript("category.php?store_id=1"); 
          Log.e("Cat",response); 

          JsonFactory jsonFactory = new JsonFactory(); 
          JsonParser jsonParser = jsonFactory.createParser(response); 
          allCategory = new ObjectMapper().readValue(jsonParser, AllCategory.class); 



         } catch (Exception e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
          pD.dismiss(); 

         } 

Мой класс ProJo это жизнь следовать

package com.elsner.bean; 

import com.fasterxml.jackson.annotation.JsonAnyGetter; 
import com.fasterxml.jackson.annotation.JsonAnySetter; 
import com.fasterxml.jackson.annotation.JsonIgnore; 
import com.fasterxml.jackson.annotation.JsonInclude; 
import com.fasterxml.jackson.annotation.JsonProperty; 
import com.fasterxml.jackson.annotation.JsonPropertyOrder; 

import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 


@JsonInclude(JsonInclude.Include.NON_NULL) 
@JsonPropertyOrder({ 
     "flag", 
     "data" 
}) 
public class AllCategory { 

    @JsonProperty("flag") 
    private String flag; 
    @JsonProperty("data") 
    private List<Category> data = new ArrayList<Category>(); 
    @JsonIgnore 
    private Map<String, Object> additionalProperties = new HashMap<String, Object>(); 

    /** 
    * No args constructor for use in serialization 
    * 
    */ 
    public AllCategory() { 
    } 

    /** 
    * 
    * @param flag 
    * @param data 
    */ 
    public AllCategory(String flag, List<Category> data) { 
     this.flag = flag; 
     this.data = data; 
    } 

    /** 
    * 
    * @return 
    * The flag 
    */ 
    @JsonProperty("flag") 
    public String getFlag() { 
     return flag; 
    } 

    /** 
    * 
    * @param flag 
    * The flag 
    */ 
    @JsonProperty("flag") 
    public void setFlag(String flag) { 
     this.flag = flag; 
    } 

    /** 
    * 
    * @return 
    * The data 
    */ 
    @JsonProperty("data") 
    public List<Category> getData() { 
     return data; 
    } 

    /** 
    * 
    * @param data 
    * The data 
    */ 
    @JsonProperty("data") 
    public void setData(List<Category> data) { 
     this.data = data; 
    } 

    @JsonAnyGetter 
    public Map<String, Object> getAdditionalProperties() { 
     return this.additionalProperties; 
    } 

    @JsonAnySetter 
    public void setAdditionalProperty(String name, Object value) { 
     this.additionalProperties.put(name, value); 
    } 

} 

я получаю следующее ошибка времени выполнения ........

com.fasterxml.jackson.databind.JsonMappingException: Невозможно десериализация экземпляра com.elsner.bean.AllCategory из START_ARRAY лексем

Но я получаю сообщение об ошибке при разборе моих данные.

+0

Можете ли вы отправить сообщение об ошибке? – Rami

+0

Я получаю ошибку компиляции @ этот код AllCategory allCategory = new ObjectMapper(). ReadValues ​​(jsonParser, AllCategory.class); .......... thanx для быстрого воспроизведения –

+0

Какую ошибку вы получаете? – Amy

ответ

1

ObjectMapper класс не имеет readValues() способ использование readValue().

Использование Это:

AllCategory[] allCategory = new ObjectMapper().readValue(jsonParser,AllCategory[].class); 
+0

это работает, но теперь я получаю ошибку времени выполнения ..... com.fasterxml.jackson.databind.JsonMappingException: не удается выполнить десериализацию экземпляра com.elsner.bean.AllCategory из маркера START_ARRAY –

+0

, вы должны сначала принять этот ответ. – Amy

+0

Я не могу, потому что моя проблема еще не решена –

Смежные вопросы