Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 解析来自API调用的响应时遇到困难_Ios_Json_Swift - Fatal编程技术网

Ios 解析来自API调用的响应时遇到困难

Ios 解析来自API调用的响应时遇到困难,ios,json,swift,Ios,Json,Swift,我试图从API调用解析响应对象,但遇到了一些困难 首先,我用以下代码解析返回的JSON: ( { "_id" = 186; accessibility = 1; completeness = "0.6899999999999999"; freshness = "0.5"; grade = Silver; "grade

我试图从API调用解析响应对象,但遇到了一些困难

首先,我用以下代码解析返回的JSON:

(
        {
        "_id" = 186;
        accessibility = 1;
        completeness = "0.6899999999999999";
        freshness = "0.5";
        grade = Silver;
        "grade_norm" = Silver;
        metadata = "0.84";
        package = "air-conditioned-and-cool-spaces-heat-relief-network";
        "recorded_at" = "2019-12-17T20:24:09";
        score = "0.78";
        "score_norm" = "0.76";
        usability = "0.86";
        version = "v0.1.0";
    },
        {
        "_id" = 187;
        accessibility = 1;
        completeness = 1;
        freshness = 0;
        grade = Bronze;
        "grade_norm" = Bronze;
        metadata = "0.25";
        package = "air-conditioned-public-places-cooling-centres";
        "recorded_at" = "2019-12-17T20:24:09";
        score = "0.54";
        "score_norm" = "0.31";
        usability = "0.85";
        version = "v0.1.0";
    },
)
让responseObject=试试?JSONSerialization.jsonObjectwith:数据为?[字符串:任意] 如果让结果=响应对象[结果]{ 打印结果 } 然后,当我记录结果时,我得到以下结果:

{
    "_links" =     {
        next = "/api/3/action/datastore_search?limit=50&id=22f223e7-73f7-4842-935c-80a0ba5c3e5b&offset=50";
        start = "/api/3/action/datastore_search?limit=50&id=22f223e7-73f7-4842-935c-80a0ba5c3e5b";
    };
    fields =     (
                {
            id = "_id";
            type = int;
        },
                {
            id = package;
            info =             {
                label = "";
                notes = "Unique, normalized, name of dataset.
                "type_override" = "";
            };
            type = text;
        }
    )
}
我再次尝试解析它:

让finalResult=试试?JSONSerialization.jsonObjectwith:结果为?[字符串:任意] 但是,我得到了以下错误:

调用类方法“jsonObject”时没有精确匹配项

更新

如果让结果=响应对象[结果]为?[字符串:任意]{ 如果让finalResult=结果[记录]{ 打印最终结果 } } 当我记录此日志时,我得到以下信息:

(
        {
        "_id" = 186;
        accessibility = 1;
        completeness = "0.6899999999999999";
        freshness = "0.5";
        grade = Silver;
        "grade_norm" = Silver;
        metadata = "0.84";
        package = "air-conditioned-and-cool-spaces-heat-relief-network";
        "recorded_at" = "2019-12-17T20:24:09";
        score = "0.78";
        "score_norm" = "0.76";
        usability = "0.86";
        version = "v0.1.0";
    },
        {
        "_id" = 187;
        accessibility = 1;
        completeness = 1;
        freshness = 0;
        grade = Bronze;
        "grade_norm" = Bronze;
        metadata = "0.25";
        package = "air-conditioned-public-places-cooling-centres";
        "recorded_at" = "2019-12-17T20:24:09";
        score = "0.54";
        "score_norm" = "0.31";
        usability = "0.85";
        version = "v0.1.0";
    },
)
当我尝试重复此操作时:

对于键,finalResult中的值{ 打印键 打印值 } 我得到以下错误:

元组模式不能匹配非元组类型的值


多亏了@OOPer,我才能够将其解析为字典:

如果让结果=响应对象[结果]为?[字符串:任意]{ 如果让finalResult=结果[记录]为?[[字符串:任意]]{ finalResult.forEach{catalog in 如果let package=目录[包装]为?字符串{ } } } }
你想对最终结果做什么?您的结果已经是jsonobject@valosip我想提取各个字段并将它们显示在用户界面上。您的结果以NSDictionary的格式显示。您不应该重新解码它,而应该将它转换为[String:Any]并将其用作Swift字典。@OOPer谢谢。我不知道那是一本字典。我更新了问题,忽略了数据差异。我把它截短了,请把你的工作代码作为你自己的答案。