JacksonParser数据绑定和核心原因“findAPK的重复文件”?

我试图学习如何使用jacksonparsing器,以获得更有效的json数据parsing。 我有这些jar文件: 从这个页面下载

jackson-core-2.2.0.jar jackson-annotations-2.2.0.jar jackson-databind-2.2.0.jar 

在代码中,我只是试图parsing一个JSON到一个对象数组:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String json = ReadFromRaw(this, R.raw.json); ArrayList<Category> categories = null; try { ObjectMapper mapper = new ObjectMapper(); categories = mapper.readValue(json, mapper.getTypeFactory().constructCollectionType(List.class, Category.class)); // categories = mapper.readValue(json, new TypeReference<List<Category>>() {}); } catch (Exception e) { Log.e("MainActivity", "Error: " + e.getMessage()); } SimpleListView myList = (SimpleListView) findViewById(R.id.myList); myList.setAdapterWithItems(GetAdapter(categories)); } 

不确定是否有必要,但这里也是我的类别类:

 @JsonIgnoreProperties({ "DisplayPriority" }) public class Category { @JsonProperty("Id") private String categoryId; @JsonProperty("name") private String categoryName; public String getCategoryId() { return categoryId; } public void setCategoryId(String categoryId) { this.categoryId = categoryId; } public String getCategoryName() { return categoryName; } public void setCategoryName(String categoryName) { this.categoryName = categoryName; } } 

一切似乎没问题,没有错误或警告。 但是当我尝试编译时,它给出了这个错误:

 [2013-04-25 09:32:08 - Training - JacksonParser] Error generating final archive: Found duplicate file for APK: LICENSE Origin 1: C:\~\workspace\Training - JacksonParser\libs\jackson-core-2.2.0.jar Origin 2: C:\~\workspace\Training - JacksonParser\libs\jackson-databind-2.2.0.jar 

当我search谷歌这个错误,它说这些jar文件中有一些共同的类。 我不知道该怎么做…有什么我做错了吗? 或者我做了一些事情?

在此先感谢,任何帮助表示赞赏。

Solutions Collecting From Web of "JacksonParser数据绑定和核心原因“findAPK的重复文件”?"

我也有同样的问题。 所以,我使用旧版本。

jackson核心ASL-1.9.12.jar

jackson映射器-ASL-1.9.12.jar

您可以从同一页面的“最新稳定1.x版本”下载。

这个问题已经在2.2.0发布了,请看这个问题 ; 但是应该在2.2.1中解决。

编辑:事实certificate,主要的问题是这些文件需要位于META-INF/在jar下; 如果是这样,就没有冲突。 一旦它被释放,这就是2.2.1所要做的。

一种痛苦,但手动重buildjar子并不是那么糟糕。

 git clone git://github.com/FasterXML/jackson-core.git git clone git://github.com/FasterXML/jackson-databind.git cd jackson-core git checkout jackson-core-2.2.0b # not sure what the "b" is about mv src/main/resources/NOTICE src/main/resources/META-INF/ mv src/main/resources/LICENSE src/main/resources/META-INF/ mvn install # jar will be at target/jackson-core-2.2.0.jar cd ../jackson-databind git checkout jackson-databind-2.2.0 mv src/main/resources/NOTICE src/main/resources/META-INF/ mv src/main/resources/LICENSE src/main/resources/META-INF/ mvn install # jar will be at target/jackson-databind-2.2.0.jar 

勒叹。 太痛苦了

编辑 :原来你需要注解做大部分的东西。 这个练习是给读者的。 我也发现你可以在Maven上下载新的(固定)版本的jar 。

正如史蒂夫在上次编辑中所说,你可以从Maven下载最新的jar: http : //repo1.maven.org/maven2/com/fasterxml/jackson/core/