给定以下.json文件:
[
{
"name" : "New York",
"number" : "732921",
"center" : [
"latitude" : 38.895111,
"longitude" : -77.036667
]
},
{
"name" : "San Francisco",
"number" : "298732",
"center" : [
"latitude" : 37.783333,
"longitude" : -122.416667
]
}
]
我准备了两个类来表示所包含的数据:
public class Location {
public String name;
public int number;
public GeoPoint center;
}
…
public class GeoPoint {
public double latitude;
public double longitude;
}
为了解析.json文件中的内容,我使用Jackson
2.2.x
并准备了以下方法:
public static List<Location> getLocations(InputStream inputStream) {
ObjectMapper objectMapper = new ObjectMapper();
try {
TypeFactory typeFactory = objectMapper.getTypeFactory();
CollectionType collectionType = typeFactory.constructCollectionType(
List.class, Location.class);
return objectMapper.readValue(inputStream, collectionType);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
只要我忽略该center
属性,就可以解析所有内容。但是,当我尝试解析地理坐标时,出现以下错误消息:
com.fasterxml.jackson.databind.JsonMappingException:无法
从[START_ARRAY]令牌中反序列化com.example.GeoPoint
实例,网址为[Source:android.content.res.AssetManager$AssetInputStream@416a5850;
行:5,列:25]
(通过参考链:com.example.Location [“ center”])
您的JSON字符串格式不正确:的类型center
是无效对象的数组。更换[
和]
使用{
,并}
在JSON字符串周围longitude
,并latitude
让他们将对象:
[
{
"name" : "New York",
"number" : "732921",
"center" : {
"latitude" : 38.895111,
"longitude" : -77.036667
}
},
{
"name" : "San Francisco",
"number" : "298732",
"center" : {
"latitude" : 37.783333,
"longitude" : -122.416667
}
}
]
我对这个有同样的问题,很高兴看到已经有了解决方案。但是我不能在我的代码上实现它。 说明:在Spring 3 REST Webservice中,无法从START_ARRAY令牌中反序列化对象实例 这是我的 根据a给出的链接上的答案,我应该替换MyModelClass。通过包含MyModelClass的List进行分类,但我得到一个语法错误。就像这个 我做错了吗?提前感谢。
给定以下JSON文件: 我试图使用Jackson对象映射器访问JSON文件中的值。具体如下:
给定以下.json文件: 我准备了两个类来表示包含的数据: com.fasterxml.jackson.databind.JSONMappingException:无法反序列化 com.example.geopoint实例,该实例超出了[源:Android.Content.res.AssetManager$AssetInputStream@416a5850;行:5,列:25] 处的START_AR
我需要向网络服务发送帖子请求,但它在异常后返回。 实际服务器响应如下: 我根据以下内容发送请求 我的代码
//接口 我从这个问题中读到:不能构造-Jackson的实例,但似乎没有帮助,因为我有太多的类从接口实现,不仅仅是一次。