这可能看起来很愚蠢,我是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}}
帮助我,我做错了!谢谢
答案 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);
也请查看此链接: