ManagerMainでOnClickSetMessage→SetJsonFormWWW→SetMessage→CallbackWebRequestSuccess
→MemberDataModel.DeserializeFromJsonと処理が進み、
MemberDataModelのpublic static List<MemberData> DeserializeFromJson(string sStrJson)内の
foreach (IDictionary jsonOne in jsonList)こちらでNullReferenceExceptionが出て
なぜなのかデバッグしてみたところ、
MemberDataModelのpublic static List<MemberData> DeserializeFromJson(string sStrJson)の
sStrJsonになんだかjsonの形式ではないずらーーと長い文字列が入っており、(画像1)
MiniJsonでjsonとして認識されずにデシリアライズできていないようでした。
これはSetMessage内で webRequest.downloadHandler.textのときからこのような文字列が入っており
なにやら「~~~cake-error~~~」のような一文も見られるので、サーバーのほうに何か問題があるのかなと思うのですが、
こちら何が原因心当たりございますでしょうか?
SetMessage内では何もおかしいこと記述していないと思うのですが…
ちなみに、GetJsonFromWwwボタンやShowMemberListボタンの動作は正常に行えます。
↑こちらも目を通しておりまして、WebRequestSuccess()
を実行するバージョンに切り替えてみても、
「文字列が長すぎて表示できません」のようなエラーがでてしまい、
このときも同じ謎の長ーい一文が渡されているようでした。
確認してみたところ、本来デシアライズは受け取ったJsonデータを扱うものですが、
今回のプロジェクトを確認したところ、データを送信するメソッドのコールバックにもデシアライズを行うCallbackWwwSuccess
メソッドが指定されていました。
SetMessage
を行ってもJsonファイルは返ってこないので、そこでエラーが発生したものと考えられます。
SetMessage
を行ったあとのコールバックには「Debug用メッセージを表示する」「ディスプレイのメッセージを変更する」等の内容だけにし、GetMessage
を行ったあとに呼ばれるコールバックにCallbackWwwSuccess
を指定しましょう。
echoで返ってくるだけで、getMessageのようにjsonが返ってくる構造とは根本的に違うのですね。
UnityWebRequest.downloadHandler.textはxxxController.php
の関数でechoされた内容が格納されるもの
そうですね。echoの部分が返り値として返ってくると考えて大丈夫です。