0

次のテキスト ファイルに対して jquery ajax 呼び出しを行っています。

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

通話は正常に機能しています。しかし、上記のテキスト ファイルから「中国」などの特定の値にアクセスする方法が本当にわかりません。私はこれが初めてです。助けてください..

4

3 に答える 3

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 または $.ajax で解析した後、次のようにアクセスします。

data.sports

例えば。

于 2012-12-12T09:48:13.083 に答える
1

これはparseParams、クエリ文字列を配列に分割するために使用できるプラグインです。

次のように使用できます。

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
于 2012-12-12T09:45:35.190 に答える
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); // "Table Tennis" を出力します console.log(outObj.teams.china) // 中国のデータを出力します

于 2012-12-12T10:03:31.303 に答える