[英]How to store JSON data from API call
我是一名新手程序员,所以请随意评论没有意义的内容,以便我学习。
我正在开发一个咖啡店搜索器android应用程序,该应用程序调用SimpleGeo API以获取每个感兴趣的地方。 我在想一种可以用于我的目的的方式来存储返回的JSON数据时遇到了麻烦。 我需要对数据做两件事:首先,我需要一个地图覆盖类来访问它,以便可以为每个咖啡店绘制标记(我可以)。 其次,我需要在列表视图中显示数据。
API调用:
/** Queries SimpleGeo with current location **/
private void getJSONData() {
SimpleGeoPlacesClient client = SimpleGeoPlacesClient.getInstance();
client.getHttpClient().setToken(oauth_key, oauth_secret);
double radius = 25;
try {
client.search(lat, lng, "coffee", null, radius,
new FeatureCollectionCallback() {
public void onSuccess(FeatureCollection collection) {
try {
features = collection.toJSON();
} catch (JSONException e) {
System.out.println(e.getMessage());
}
}
public void onError(String errorMessage) {
System.out.println(errorMessage);
}
});
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
解析数据:
private void parseJSONData() throws JSONException {
for (int i = 0; i < features.length(); i++) {
JSONObject feature = features.getJSONObject(i).getJSONObject(
"feature");
}
}
我目前正在尝试使用本教程中概述的GSON从数据中创建Java对象。 SQLite是否适合于此? 任何亲提示将不胜感激。
谢谢。
假设您使用的是Android,则可以使用Google Map View
view,com.google.android.maps.MapView http://developer.android.com/resources/tutorials/views/hello-mapview.html
和ListView http://developer.android.com/reference/android/widget/ListView.html
我看不到SQLite如何适合这里,除非您计划在应用程序重新启动时存储这些位置。 您需要做的就是从JSON提取位置信息,并对数据进行任何操作。
我意识到答案已经被接受,但是无论如何,我都在扔我的2位...
为了“避免不必要的API调用”,响应JSON可能不需要持久化(在SQLite或文本文件中)。 要确定这一点,可能需要有关该应用的更多信息。
我的朋友从博客帖子中复制内容,请我校对:
在某些情况下,GSON使从JSON创建Java对象变得异常简单,尽管许多示例(尤其是博客文章中的示例)都琐碎琐碎或不必要地复杂,通常只不过是复制粘贴示例(名称更改)而已。 GSON文档,这是问题的核心-文档在示例中并不十分详尽,并且很快使复杂的对象看起来很难映射。
但是我离题了...
如果问题是一个人不知道如何使用JSON和/或GSON,则并不意味着该解决方案涉及SQLite或文本文件的持久性或任何类型的持久性。
关于原始问题中的代码,它似乎假定响应JSON中的对象将以某种特定顺序出现。 根据我的经验,这通常不是一个安全的假设。 有时itemX在第一位,有时在第三位。 (当然,这取决于生成响应的系统。)因此,解析结果以允许JSON对象的顺序变化。
关于是否持久化JSON数据,再次需要了解的应用程序要比到目前为止解释的更多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.