1

当我发布 api 调用时,我得到这个 html 作为响应,所以我想知道如何使用 jquery 或一些简单的 javascript 代码读取client_idsession_token ?

function getNewsFeed(d) {
    var c = {
        page_num: b,
        num_events: d,
        return_as_html: true,
        source: "web"
    };
    TAGGED.api.call(c, check)
}

现在想检查一下:

function check() {
    // checking here
}

["{\"stats\":\"ok\",\"dia\":\"44\",\"result\":{\"success\":true,\"session_token\":\" 969ndg1ai0c43034\",\"next_event_id\":0,\"client_id\":1314852}}"]

我没有 JSON,所以无法使用 我尝试使用的 JSON.parse 读取它,但在 firebug 中它不显示 JSON

当我用萤火虫检查它时,我得到相同的代码作为响应和 html。

谢谢。

4

1 回答 1

2

如果您可以确定您的值中不会包含某些特殊字符,则可以用逗号分隔,然后用冒号分隔,并去掉不匹配的字符...

str = '["{\"stats\":\"ok\",\"dia\":\"44\",\"result\":{\"success\":true,\"session_token\":\"969ndg1ai0c43034\",\"next_event_id\":0,\"client_id\":1314852}}"]'

// replace all characters that are not letters, numbers, underscore, colon or comma
str = str.replace(/[^a-zA-Z0-9_:,]/g,'')

// get array of key value pairs
all = str.split(',')

// create empty opts object to store final data
opt = {}

// loop through array of key value pairs
for(i in all){

    // split into key value array
    bits = all[i].split(/:/)

    // assign to opt object
    opt[bits[0]] = bits[1]

}

// access values vie keys of opt
alert(opt.client_id+": "+opt.session_token)
于 2012-10-14T07:07:13.073 回答