解析Json的回应

时间:2013-07-20 17:53:57

标签: javascript json

我有这个json响应,我想在Javascript中解析。

[{"video_source_id":100,"title":"YouTube Top Rated"},
{"video_source_id":101,"title":"YouTube Top Favorites"}]

我是Java Script JSON的新手。什么是解析并在网页中显示它的最佳方法?

这是我所拥有的,但我收到以下错误

  

TypeError:无法读取未定义的属性“0”

document.getElementById("video_source_id").innerHTML = jsonObj.video_source_id[i];

完整代码:

function loadJSON()
{
    var http_request = new XMLHttpRequest();
    try{
        // Opera 8.0+, Firefox, Safari
        http_request = new XMLHttpRequest();
    }catch (e){
        // Internet Explorer Browsers
        try{
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        }catch (e) {
            try{
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            }catch (e){
                // Something went wrong
                alert("Your browser broke!");
                return false;
            }
        }
    }
    var data_file = "/vcaWS/api/sources";

    http_request.onreadystatechange  = function(){
        if (http_request.readyState == 4  )
        {
            // Javascript function JSON.parse to parse JSON data
            var jsonObj = JSON.parse(http_request.responseText);

            // jsonObj variable now contains the data structure and can
            // be accessed as jsonObj.name and jsonObj.country.
            for(var i=0;i<jsonObj.length;i++){
                document.getElementById("video_source_id").innerHTML =  jsonObj.video_source_id[i];
            }
        }
    }
    http_request.open("GET", data_file, true);
    http_request.send();
}

1 个答案:

答案 0 :(得分:0)

jsonObj是一个数组。数组没有video_source_id property。但是数组中的对象可以。因此,我认为您需要jsonObj[i].video_source_id,即“访问video_source_idi元素的jsonObj属性”。

另请参阅:Access / process (nested) objects, arrays or JSON