2017-09-29 9 views
0

jQuery関数に次の文字列を返すcoldfusion関数があります。これは最善の方法ではないかもしれませんが、私は今のところそれに固執しています。jQueryを使用してColdFusionシリアル化配列を解析します。

var str = '1^Successfully logged in^0^1^1^5^NULL^xyz^100'; 

最近、coldfusion関数が更新され、クエリから構造体の配列が生成され、シリアル化されて戻り文字列に追加されました。次のようにjQueryの機能で受信した結果の文字列は以下のようになります。

var a = str.split("^")[0]; 
var b = str.split("^")[1]; 
var c = str.split("^")[2]; 
var d = str.split("^")[3] || -1; 
var e = str.split("^")[4] || -1; 
var f = str.split("^")[5] || -1; 
var g = str.split("^")[6] || 0; 
var h = str.split("^")[7] || 0; 
var i = str.split("^")[8] || 0; 

var str = '1^Successfully logged in^0^1^1^5^NULL^xyz^100^[[4,"No credit card"],[5,"Test"]]' 

我々はシリアル化された配列を追加するまで、我々は単に(この質問のために簡略化)このように文字列を解析し、アップそれは、次の(これは、本質的に疑似コードで、おそらくループを必要とする)のような何かをするように、どのように私は、文字列の末尾に配列を解析することができます

var errors = str.split("^")[9]; 
if(we find an error of "4"){ 
    $('#divAlert').html('No credit card') 
} 
if(we find an error of "5"){ 
    $('#divAlert2').html('Test') 
} 

答えて

1

あなたが目を解析することができますE第九配列位置:

var f = JSON.parse(str.split("^")[9] || '[]'); 

str.split( "^")をキャッシュすることを検討してください。

この結果は次のとおりです。

var str = '1^Successfully logged in^0^1^1^5^NULL^xyz^100^[[4,"No credit card"],[5,"Test"]]' 
 

 
var tmpArr = str.split("^"); 
 
var a = tmpArr[0]; 
 
var b = tmpArr[1]; 
 
var c = tmpArr[2]; 
 
var d = tmpArr[3] || -1; 
 
var e = tmpArr[4] || -1; 
 
var f = tmpArr[5] || -1; 
 
var g = tmpArr[6] || 0; 
 
var h = tmpArr[7] || 0; 
 
var i = tmpArr[8] || 0; 
 
var f = JSON.parse(tmpArr[9] || '[]'); 
 
console.log(f); 
 
f.forEach(function(ele, idx) { 
 
    switch (ele[0]) { 
 
     case 4: 
 
      $('#divAlert').html((idx, e) => {return e + ele[1] + '<br/>'}); 
 
      break; 
 
     case 5: 
 
      $('#divAlert').html((idx, e) => {return e + ele[1] + '<br/>'}); 
 
      break; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<div id="divAlert"></div>

+1

おっと、yeah..done。答えに感謝します。それを受け入れる – user460114

+0

@ user460114ようこそ。本当にありがとう – gaetanoM

関連する問題