错误Json:";NSDebugDescription末尾的垃圾”;(iOS)

错误Json:";NSDebugDescription末尾的垃圾”;(iOS),ios,objective-c,json,parsing,Ios,Objective C,Json,Parsing,你好, 即使我做了研究,我也找不到任何人能在我的处境中帮助我 因此,我试图解析由xcode上的php脚本创建的Json,但我有一个错误,它阻止了这个过程 我是新来的,所以我试着在问题的布局上做到最好 我的错误: [376:70b] Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Garbage at end.) UserInfo=0x8bc0

你好,

即使我做了研究,我也找不到任何人能在我的处境中帮助我

因此,我试图解析由xcode上的php脚本创建的Json,但我有一个错误,它阻止了这个过程

我是新来的,所以我试着在问题的布局上做到最好

我的错误:

[376:70b] Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Garbage at end.) UserInfo=0x8bc0f70 {NSDebugDescription=Garbage at end.
[{"nom":"Call of duty ghost","date":"22 novembre","image":"appicon.png"},{"nom":"Fifa 14","date":"22 novembre","image":"appicon.png"}]
我的代码:

我的json:

[376:70b] Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Garbage at end.) UserInfo=0x8bc0f70 {NSDebugDescription=Garbage at end.
[{"nom":"Call of duty ghost","date":"22 novembre","image":"appicon.png"},{"nom":"Fifa 14","date":"22 novembre","image":"appicon.png"}]

我希望您能帮助我,谢谢您的回答。PHP脚本将返回JSON,但也返回了它后面的HTML片段:

[{"nom":"Call of duty ghost","date":"22 novembre","image":"appicon.png"},{"nom":"Fifa 14","date":"22 novembre","image":"appicon.png"}] 
<!-- Hosting24 Analytics Code -->
<script type="text/javascript" src="http://stats.hosting24.com/count.php"></script>
<!-- End Of Analytics Code -->
或者将其加载到浏览器中并查看源代码

如果您可以控制PHP脚本,请删除分析代码。否则,您可以使用正则表达式在解析响应之前删除响应的非JSON部分

编辑:要使用正则表达式远程非JSON,可以使用以下方法:

NSString *json = @"[{\"nom\":\"Call of duty ghost\",\"date\":\"22 novembre\",\"image\":\"appicon.png\"},{\"nom\":\"Fifa 14\",\"date\":\"22 novembre\",\"image\":\"appicon.png\"}]\n<!-- Hosting24 Analytics Code -->\n<script type=\"text/javascript\" src=\"http://stats.hosting24.com/count.php\"></script>\n<!-- End Of Analytics Code -->";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\s+<!--.*$"
                                                                       options:NSRegularExpressionDotMatchesLineSeparators
                                                                         error:nil];
NSTextCheckingResult *result = [regex firstMatchInString:json
                                                 options:0
                                                   range:NSMakeRange(0, json.length)];
if(result) {
    NSRange range = [result rangeAtIndex:0];
    json = [json stringByReplacingCharactersInRange:range withString:@""];
    NSLog(@"json: %@", json);
}
NSString*json=@“[{“nom\”:“使命召唤幽灵”,“日期”:“11月22日”,“图像”:“appicon.png\”,{“nom\”:“Fifa 14\”,“日期”:“11月22日”,“图像”:“appicon.png\”)\n\n;

NSRegularExpression*regex=[NSRegularExpression regular expressionwithpattern:@“\\s+如果查看原始数据,您将在其中找到“0”,以删除我在以下循环中使用的数据

NSData *objectData = [jsonStr  dataUsingEncoding:NSUTF8StringEncoding];
            NSError *error;
            id json = [NSJSONSerialization JSONObjectWithData:objectData options:NSJSONReadingMutableContainers error:&error];
            if (json == nil) {
                int index = 0;
                const char *bytes = [data bytes];
                for (int i = (int)data.length-1; i > 0; i--) {
                    unsigned char ch = (unsigned char)bytes[i];
                    NSLog(@"%02hhx", ch);
                    if (ch != 0) {
                        index = i+1;
                        break;
                    }
                }

                NSRange dataRange = NSMakeRange(0, index);
                json = [NSJSONSerialization JSONObjectWithData:[objectData subdataWithRange:dataRange] options:NSJSONReadingMutableContainers error:&error];
            }

这将切断数据末尾的所有“00”字节。

如果您继续尝试使用URL,并尝试使用URL,则表明您的JSON不兼容。似乎您的WS正在发送其他数据(这是垃圾)。嗯,因此当我访问此URL并粘贴示例中的JSON时,验证程序会说“有效的JSON”“..@thorb,将问题中的JSON与来自它的响应数据进行比较,因为导航器将“删除/解释”某些HTML或任何web语言,而不会呈现(如:向用户显示)它。好的,通过curl,我看到了问题:-在8小时内,我将发布最终代码!(我现在不能,因为我是新用户:)