解析ajax json响应

时间:2018-12-14 15:03:25

标签: asp.net json ajax asp.net-web-api

我无法获取JSON对象的数据。

这是我的API动作:

    public string GetVideoInfo(uint videoID)
    {
        ApiVideoInfo videoInfo = new ApiVideoInfo()
        {
            Likes = BitVidDb.GetLikes(videoID),
            Dislikes = BitVidDb.GetDislikes(videoID),
            Views = BitVidDb.GetViews(videoID),
        };

        return JsonConvert.SerializeObject(videoInfo);
    }

如果我在浏览器中调用API,它将返回:

“ {\”观看次数“:396,\”喜欢\“:1,\”不喜欢\“:0}”

但是当我调用此ajax函数时:

    $.ajax({
        url: '/API/Video/GetVideoInfo/25',
        dataType: 'application/json',
        complete: function (data) {
            var json = JSON.parse(data);
            alert(json["Views"]);
        },
    });

它给我以下错误:

SyntaxError:JSON.parse:JSON数据第1行第2列的意外字符

我使用JSON.stringify将其转换为字符串,并输出以下内容:

{“ readyState”:4,“ responseText”:“ \” {\\“ Views \\”:396,\\“ Likes \\”:1,\\“ Dislikes \\”:0} \“ “,”状态“:200,” statusText“:”确定“}

我需要采取一些其他步骤来获取这些值吗? 该请求似乎很好,Chrome开发人员工具将此作为api的答案:

JSON {“查看”:396,“喜欢”:1,“不喜欢”:0}

预先感谢

Jan

1 个答案:

答案 0 :(得分:0)

您只能解析字符串,并且数据是一个对象。要获取json作为字符串,我只需要使用data.responseText。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1; // number of sections
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 10; // should be your array count
}

- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *cellId = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
    if (cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];
    }
    cell.textlabel.text = @"test";
    return cell;
}