現在UnityとPlayfabでアカウント機能を有するアプリケーションを開発しております。
そのなかでPlayfabのPlayer Data上でダイレクトメッセージ機能の実装を試みております。
Playfab(サーバー)側で以下のフォーマットのデータを保存し、必要な時に任意のキーのデータのみをUnity(クライアント)側に送信します。
{ "A1B2C3":[ //"A1B2C3"はダイレクトメッセージを送受信している相手のID ["S", "Message1"], //"S"は本ユーザーがメッセージを送信していることを意味する ["R", "Message2"], //"R"は本ユーザーがメッセージを受信していることを意味する ["R", "Message3"], . . . ], "A4B5C6":[ ["S", "Message4"], ["R", "Message5"], ["R", "Message6"], . . . ] }
Unity側で受信されるデータは以下となります。
//"A1B2C3"のデータを取得した場合 [ ["S", "Message1"], ["R", "Message2"], ["R", "Message3"], . . . ]
行いたいことは、
上記のデータから配列として扱えるようstring[][]の形式に変換し、メッセージのやり取りを行っている相手、送信者か受信者か、メッセージの内容などを取得しメッセージの一覧を表示したいと考えています。
GetType()
で確認したところ上記のデータの型はPlayFab.Json.JsonArray
でした。
そもそも上記のデータを配列に変換する関数などありますでしょうか。ない場合、何かうまい方法があればご教授頂きたく。
*JSONの形式は変更可能です。ただし保存領域に制約があり文字数は抑制したいと考えています。
追記:
必要なキー(メッセージを閲覧したい相手のID)だけでなくすべてのJSONデータを取得し、かつLitJsonを用いて以下の記述とすることでデータを取得・処理できるようになりました。
using LitJson; string jsonStr = result.FunctionResult.ToString(); JsonData jsonData = JsonMapper.ToObject(jsonStr); Debug.Log("DM[0]" + jsonData[g_rcvID][0][0] + " : " + jsonData[g_rcvID][0][1]);
ただし上記の方法では必要なキー(メッセージを閲覧したい相手のID)以外のデータも一度取得しなければならず、効率が悪いと考えています。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。