2014-03-31 57 views
1

,它可能似乎愚蠢的問題,我是小菜鳥爲JSON和試圖訪問我JS file如何訪問在Javascript JSON數據在這裏提交

[ 
    { 
     "1": [ 
      "video1", 
      "ENG" 
     ] 
    }, 
    { 
     "2": [ 
      "video2", 
      "CHI" 
     ] 
    } 
] 

下面JSON data但我不能夠訪問 我已嘗試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,我用下面的代碼來生成JSONPHParray

這是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和我JS做了ajax call得到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); 

幫我哪裏做錯了!謝謝

+0

可能重複(嵌套)的對象,數組或JSON](http://stackoverflow.com/questions/11922383/access-process-nested-objects-arys-or-json) –

+0

http://stackoverflow.com/questions/4935632/ho W-到語法分析JSON-中的JavaScript – pj013

回答

2

用途:

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

再換就是

var JSON = JSON.stringify(data); 
0

data被包裹在一個元素的數組。例如,您可以使用data[0]["1"][0]來獲得"data1"

您也可以用這種方式構建JSON,以防止將其封裝在整個數組中或用元素tracks包裝而不是使用數字鍵(它應該強制轉換爲目的)。

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

您應該使用JSON.parse爲 「從PHP字符串」 例如改變你:

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

檢查還鏈接:

Parse JSON in JavaScript?

[交通/過程