2012-12-12 30 views
0

我想提出一個jquery Ajax調用下面的文本文件:如何使用JavaScript訪問文本文件?

sport=Table Tennis&groups=no&no_groups=&grp_names=&teams=1^China^6157~2^Finland^6158~3^Sweden^6159~4^Japan^6149~5^Korea^6154&Endstr=End 

呼叫工作正常。但是我真的不知道如何從上面的文本文件中獲取特定的值,比如說'中國'?我正在嘗試第一次。請幫助..

+0

「中國」似乎沒有價值,它只是團隊字符串的一部分。 – David

回答

0

以下是解析數據的代碼。如果你選擇了JSON作爲返回數據,那將是直接的。

function myParser() { 

    var str = "sport=Table Tennis&groups=no&no_groups=&grp_names=&teams=1^China^6157~2^Finland^6158~3^Sweden^6159~4^Japan^6149~5^Korea^6154&Endstr=End"; 
    var arPairs = str.split("&"); 
    var outObj = {}; 
    for (var i=0; i < arPairs.length; i++) { 
     var arTemp = arPairs[i].split("="); 
     var key = arTemp[0]; 
     var value = arTemp[1]; 
     if (key === "teams") { 
     arTemp = value.split("~"); 
     var teamObj = {}; 
     for (var j=0; j < arTemp.length; j++) { 
      var arTeamData = arTemp[j].split("^"); 
      teamObj[arTeamData[1]] = arTeamData[2]; 
     } 
     value = teamObj; 
     } 
     outObj[key] = value; 
    } 
    return outObj; 
} 

輸出:是一個數組,其中包含所有可用的數據。你可以參考它:

var outObj = myParser(); console.log(outObj.sport); //打印「乒乓球」 console.log(outObj.teams.china)//打印中國數據

+0

謝謝..但正如你所說,它打印的中國數據..i.e。 _6157_而不是'中國'這個名字..我能做到這一點嗎? – anujit

+0

是的,只需要做(var teamName in outObj.teams){ – closure

+0

如果你願意,你也可以改變我的代碼(teamObj [arTeamData [1]] = arTeamData [2];)插入數組。我用對象作爲快速參考。 – closure

1

Here is the parseParams plugin您可以使用它將查詢字符串拆分爲數組。

您可以使用它像這樣:

var querystring = 'sport=Table Tennis&groups=no&no_groups=&grp_names=&teams=1^China^6157~2^Finland^6158~3^Sweden^6159~4^Japan^6149~5^Korea^6154&Endstr=End'; 
var paramsObj = $.parseParams(querystring); 
alert(paramsObj.sport); // = Table Tennis 
+0

感謝它的工作..但我仍然無法訪問像中國這樣的特殊價值,就像我之前說過的那樣。alert(paramsObj.teams);將顯示整個隊的字符串.. – anujit

+0

這是正確的。 「中國」是價值的一部分 - 這可能會發生變化。你需要分割這個值來得到你想要的部分。 –

+1

這就是爲什麼人們發明JSON:D –

1

不要用這樣的文件結構。改用JSON。即:

{ 
    "sport":"Table Tennis", 
    "groups":false, 
    "no_groups":"", 
    "grp_names":[ 

    ], 
    "teams":[ 
     { 
     "China":6157 
     }, 
     { 
     "Finland":6158 
     }, 
     { 
     "Sweden":6159 
     }, 
     { 
     "Japan":6149 
     }, 
     { 
     "Korea":6154 
     } 
    ], 
    "Endstr":"End" 
} 

然後,你以後再和$ .get或$就分析它,你只需訪問:

data.sports 

例如。