0

mixiアプリで情報をjsonで永続的に保存する方法

opensocialのデータの保存方法は、Key-Valueペアの文字列情報になります。
非常に高速に単純明快で扱いやすいのですが、とたんに扱いにくくなりコードが冗長化しがちです。

mixiアプリはjavascriptなんでそんな時jsonで保存しとくとラクチンです。
幸いな事にopensocialにはjson化するメソッドが既に備わっています。
下記がarrと言う名前のJSONデータが作成を保存する方法です。

情報の永続化

var user_id = opensocial.IdSpec.PersonId.VIEWER;
 
var arr = {};
arr['title'] = "hoge";
arr['rank1'] = "rank1";
arr['rank2'] = "rank2";
arr['rank3'] = "rank3";
 
// エンコードしてjson化
var jsonvalue = gadgets.json.stringify(arr);
  
var req = opensocial.newDataRequest();
req.add(req.newUpdatePersonAppDataRequest(user_id, "jsonvalue", jsonvalue));

永続化された情報の取得

var user_id = opensocial.IdSpec.PersonId.VIEWER;
 
var req = opensocial.newDataRequest();
req.add(req.newFetchPersonRequest(user_id), "viewer");
var fields = [ "jsonvalue" ];
 
req.send(function(response) {
if (response.hadError()) {
alert(response.getErrorMessage());
} else {
var myId = response.get("viewer").getData().getId();
var data = response.get("viewer_data").getData();
 
var str = data[myId]["jsonvalue"];
str = gadgets.util.unescapeString(str);
var arr = gadgets.json.parse(str);
 
// hogeが出力される
alert(arr.title);
}
});

大阪のWEB屋です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です