Я использую Unity3D с Boomlagoon JSON из хранилища активов Unity. Я отправляю json с сервера, а затем извлекаю из него строку и сравниваю ее с другой строкой в операторе if. Я не могу из-за своей смерти заставить это работать.
var reply : String = WebSocketSingleton.getInstance().RecvString();
Debug.Log ("Received: " + reply);
var jsonReply = JSONObject.Parse(reply);
Debug.Log("jsonReply['event']: " + jsonReply["event"].ToString());
Debug.Log("jsonReply['event'] type : " + jsonReply["event"].ToString().GetType());
Debug.Log("login type: " + "login".GetType());
if (jsonReply["event"].ToString() == "login") {
Debug.Log("check");
} else {
Debug.Log("fail");
}
Он продолжает идти к другому.
Журнал консоли:
Received: {"event":"login","email":"asdf@"}
jsonReply['event']: "login"
jsonReply['event'] type : System.String
login type: System.String
fail
Пакет Unity, который я использую для json: https://www.assetstore.unity3d.com/en/#!/content/5788
Надеюсь, я не просто большой идиот...
String.CompareTo()
вместо оператора==
- person Umair M   schedule 24.07.2015==
не работает. Также почемуDebug.Log(jsonReply["event"].ToString().CompareTo("login"));
возвращает-1
, а затем проверка после того, как она проходит, как если бы она возвращала true. Я так растерялся. - person Waltari   schedule 24.07.2015