Сравнение строк Unity3D Boomlagoon JSON

Я использую 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

Надеюсь, я не просто большой идиот...


person Waltari    schedule 24.07.2015    source источник
comment
попробуйте использовать метод String.CompareTo() вместо оператора ==   -  person Umair M    schedule 24.07.2015
comment
Хорошо, это сработало, но я все же хотел бы объяснить, почему == не работает. Также почему Debug.Log(jsonReply["event"].ToString().CompareTo("login")); возвращает -1, а затем проверка после того, как она проходит, как если бы она возвращала true. Я так растерялся.   -  person Waltari    schedule 24.07.2015


Ответы (1)


Я думаю, == не работает для строк.

Обратитесь за помощью к этому руководству.

Ссылка: Разница между == и string.Equals

person Umair M    schedule 24.07.2015