0

我正在尝试在此 URL 解析 JSON 文件:http: //query.yahooapis.com/v1/public/yql ?q=select%20 *%20from%20yahoo.finance.quotes%20where%20symbol%20in% 20(%22YHOO%22%2C%22AAPL%22%2C%22GOOG%22%2C%22MSFT%22)%0A%09%09&format=json&diagnostics=true&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=结果

我到目前为止的代码如下:

    NSData *data=[NSData dataWithContentsOfURL:[[NSURL alloc] initWithString:url]];
    NSError *error = nil;
    id myJSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];

    NSLog(@"%@", error);

    NSArray *jsonArray = (NSArray *)myJSON;
    for (id element in jsonArray) {
        NSLog(@"Element: %@", [element description]);
    }

这段代码似乎每次都出现错误(错误 3840“操作无法完成。(可可错误 3840。)”(JSON 文本没有以数组或对象开头,并且允许未设置片段的选项。)“ )。

我想知道这是否是我下载/解析数据的方式的问题,或者它是否是实际 JSON 中的问题,我必须以不同的方式处理它。

4

2 回答 2

1

删除&callback=resultsURL 末尾的 。这会导致 JSON 不以数组或字典开头。请注意,如果您在 JSON 代码中引用“结果”,那么您将需要删除/更改它。如果你区分这两个 JSON 文本,那么你会看到不同之处(看开头)。

于 2013-08-13T15:19:15.873 回答
0

在网络浏览器中打开您发布的 url 的结果,复制内容,然后转到 jsonlint.com 并粘贴内容,然后单击验证。它向您显示输入不是有效的 json,因此您可能需要进行一些额外的解析。

于 2013-08-13T15:20:16.733 回答