gpt4 book ai didi

java - 在Android中使用restTemplate.getForObject反序列化JSON对象的正确方法

转载 作者:行者123 更新时间:2023-12-01 22:45:50 27 4
gpt4 key购买 nike

我正在尝试将 JSON 对象从 Java 反序列化回 Android 类。如果我使用 getForObject(url,String.class) 该方法返回一个值,但是如果我使用 getForObject(url,Info.class) 反序列化为对象,则调试器崩溃,甚至无法到达 catch block 。我错过了什么吗?

 private class HttpRequestTask extends AsyncTask<Void, Void, Info> {
@Override
protected Info doInBackground(Void... params) {
try {

String url = "http://192.168.1.101:8080/sandbox/android";
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());

// works
///String result = restTemplate.getForObject(url, String.class);
//Log.d("Main",result); // {"id":"1","content":null,"name":"Tommy","number":"6666","email":"abd@zyxo.com"}

// Info crashes
Info info2 = restTemplate.getForObject(url, Info.class);
Log.d("Main","succes");

} catch (Exception e) {
Log.e("MainActivity", e.getMessage(), e);
}

return null;
}

最佳答案

找到了! 由以下原因引起:java.lang.NoClassDefFoundError:java.nio.file.Path。看来我必须多配置我的 graddle

来自 ( NoClassDefFoundError on Android )您正在尝试使用 java.nio.file.Paths,据我所知,Android 中不存在该路径。 (仅支持 Java 7 API 的某些部分。)

现在我很困惑:S

使用

implementation 'org.springframework.android:spring-android-rest-template:2.0.0.M3'
implementation 'org.springframework.android:spring-android-core:2.0.0.M3'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.10.0.pr3'

[编辑]发现这是 jackson 问题 https://github.com/FasterXML/jackson-databind/issues/2466 [/编辑]

关于java - 在Android中使用restTemplate.getForObject反序列化JSON对象的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58473890/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com