如何在Javascript文件中访问JSON数据

时间:2014-03-31 15:17:43

标签: javascript php ajax arrays json

这可能看起来很愚蠢,我是JSON的小新手并试图访问JSON data

中的JS file下面的[ { "1": [ "video1", "ENG" ] }, { "2": [ "video2", "CHI" ] } ]
console.log(data[1])

但我无法访问 我尝试了console.log(data[2])for loop,但它没有用。

我需要像这样创建一个新变量(所以我可能需要for loop但在使用JSON之前我需要知道如何访问此new_data = "tracks: [{ file: "video1", label: "ENG" },{ file: "video2", label: "CHI" }]"

JSON

对于我创建JSON的一点点背景,我使用下面的代码生成PHP 来自array

PHP array

这是Array ( [0] => stdClass Object ( [vid] => 1 [video_name] => video1.mp4 [sub_path] => http://abc.example.com/files/eng.vtt [sub_lang] => ENG [status] => 1 ) [1] => stdClass Object ( [vid] => 2 [video_name] => video2.mp4 [sub_path] => http://def.example.com/files/china.vtt [sub_lang] => CHI [status] => 1 ) ) 我有

JSON

然后我将其转换为ajax call并在我的JS中设置JSON以获取 foreach ($querystring as $key => $value) { $cdn_sub_data [] = array($key+1 => array($value -> sub_path, $value -> sub_lang )); } print json_encode($cdn_sub_data); 数据

{{1}}

帮助我,我做错了!谢谢

3 个答案:

答案 0 :(得分:2)

使用:

var data = JSON.parse(ArrayHere);
console.log(data);
data.something = "hello";

回来了

var JSON = JSON.stringify(data);

答案 1 :(得分:0)

data包含在一个包含一个元素的数组中。例如,您可以使用data[0]["1"][0]获取"data1"

您还可以以这种方式构建您正在发出的JSON,以防止将其包装在整个数组中,或者将其包装在包含元素tracks的数组中,而不是使用数字键(这应该强制使用转换为对象)。

array("tracks"
    => array(
        array(
            "file" => "video1",
            "label" => "ENG",

答案 2 :(得分:0)

你应该使用JSON.parse来转换你的"字符串来自php"例如:

var j = JSON.parse('[{"1": ["data1", "ENG"]},{ "2": ["data2","CHI"]}]'); 
    console.log(j);

也请查看此链接:

Parse JSON in JavaScript?