我想将数据附加到现有的JSON对象中,并将数据作为字符串保存到具有以下结构的共享首选项中.
"results":[ { "lat":"value", "lon":"value" }, { "lat":"value", "lon":"value" } ]
我怎么能这样做?
我试过这样的事,但没有运气.
// get stored JsON object with saved positionsString JsonDataString = this.getSharedPreferencesstringValue(ctx, "positions", "last_positions");if (JsonDataString != null) { Log.i(AppHelper.APP_LOG_nameSPACE, "JsON DATA " + JsonDataString); JsONObject JsonData = new JsONObject(JsonDataString); JsonData.put("lat", lat.toString()); JsonData.put("lon", lon.toString()); JsonData.put("city", city); JsonData.put("street", street); JsonData.put("date", appHelper.getActualDateTime()); JsonData.put("time", appHelper.getActualDateTime()); this.setSharedPreferencesstringValue(ctx, "positions", "last_positions", JsonData.toString());} else { this.setSharedPreferencesstringValue(ctx, "positions", "last_positions","{}"); }
谢谢你的建议.
解决方法:
我认为实现这一目标的更简单方法是使用Gson.
如果您使用的是gradle,则可以将其添加到依赖项中
compile 'com.Google.code.gson:gson:2.2.4'
要使用它,您需要为需要加载的对象定义类.在你的情况下,它将是这样的:
// file MyObject.javapublic class MyObject { List<Coord> results = new ArrayList<Coord>(); public static class Coord { public double lat; public double lon;}
然后只需在需要时使用它来往/离开Json:
String JsonDataString = this.getSharedPreferencesstringValue(ctx, "positions", "last_positions");Gson gson = new Gson();MyObject obj = gson.fromJson(JsonDataString, MyObject.class);// Noew obj contains your JsON data, so you can manipulate it at your will.Coord newCoord = new Coord();newCoord.lat = 34.66;newCoord.lon = -4.567;obj.results.add(newCoord);String newJsonString = gson.toJson(obj);
总结 以上是内存溢出为你收集整理的Android – 如何将JSON对象添加到sharedPreferences?全部内容,希望文章能够帮你解决Android – 如何将JSON对象添加到sharedPreferences?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)