Swift:json数据的行为不同

时间:2016-02-25 07:54:56

标签: ios swift

我有一个在Swift中开发的IOS项目。在应用程序中,从webservices接收数据。我已在我们的测试版服务器上测试过,一切都很好。但是,当我将我的web服务移动到我们的实时服务器时,id和#和数字不会转换为整数,而是将它们视为字符串。以下是来自服务器的json数据示例:

id = 16737;
        image = "";
        "last_name" = "Test";
        "organizer_id" = 75;
        "show_home" = 0;
        status = 1;

在上述数据中,当数据来自实时服务器时,数字被视为字符串,当数据来自beta服务器时,数字被视为Int,两个服务器上的数据格式相同。 以下是我用于Int和string列的快速代码 对于整数:

if let organizer_id = dict["organizer_id"]! as? Int
                    {
                        Utilities.sharedInstance.setDataToUserDefaults(KEY_ORGANIZER_ID, value: String(organizer_id))
                    }

For String:

if let email = dict["email"]! as? String
                    {
                        Utilities.sharedInstance.setDataToUserDefaults(KEY_USER_EMAIL, value: email)
                    }

但是当它来自实时服务器时它会绕过整数条件并且不保存那些非常烦人的数据。我做错了什么,这样做的正确方法是什么,以便将来我不会遇到这个问题?

1 个答案:

答案 0 :(得分:0)

我在发送json数据时发现了你需要用PHP做的解决方案:

json_encode($array,JSON_NUMERIC_CHECK);

此标志将确保数值将作为整数而不是字符串发送。再次感谢您的评论。