如何在Swift中解析KairosSDK JSON识别响应?

时间:2015-08-07 18:59:24

标签: json swift parsing image-recognition face-recognition

对于那些不知道Kairos SDK是什么的人来说,它基本上是一个面部识别api。

当你给它一个图像时,它会告诉你他们是否可以与数据库中的某个人匹配。

当我给它一个图像; api回复了这个回复:

[images: (
    {
    attributes =         {
        gender =             {
            confidence = "80%";
            type = F;
        };
    };
    candidates =         (
                    {
            "enrollment_timestamp" = 1436883322;
            face3rd = "0.988351106643677";
        },
                    {
            "enrollment_timestamp" = 1436883214;
            hi = "0.94137054681778";
        },
                    {
            "enrollment_timestamp" = 1436883132;
            hi = "0.94137054681778";
        }
    );
    time = "6.43676";
    transaction =         {
        confidence = "0.988351106643677";
        "distance_apart" = "0.046980559825897";
        "gallery_name" = test1;
        height = 482;
        "matching_threshold" = "0.4";
        "next_subject" = hi;
        "next_subject_confidence" = "0.94137054681778";
        "simularity_threshold" = "0.1";
        status = success;
        subject = face3rd;
        topLeftX = 148;
        topLeftY = 92;
        width = 482;
    };
}
)]

我所做的是在数据库中放入三张图片并分别调用每张图片,face3rd,hi,hi(对不起两个喜欢的)

我一直在尝试解析它旁边的名字和号码,我可以在6秒的响应时间内完成。

我无法得到这些名字的原因是因为,正如你所看到的,我不知道告诉Swift要寻找什么。图像名称会根据我的回复而改变。

我不知道我是否已经解释了我的情况,但是如果你看一下回答的话。部分说:

face3rd = "0.988351106643677";
hi = "0.94137054681778";
hi = "0.94137054681778";

我需要等号两边的信息。

感谢您的帮助并道歉,如果阅读它是迂腐的,或者您觉得他们有很多重复。

谢谢!

1 个答案:

答案 0 :(得分:0)

是的,我们正在返回的格式很差的JSON。我们将在即将推出的API版本中修复它(此时没有发布日期......接收)。

如果你需要的是最接近的匹配,你可以直接访问主题变量并忽略候选数组。

否则,您将需要手动解析候选阵列。我不确定如何在Swift中这样做。