2017-09-26 20 views
-1

javascript配列に私のajax json応答を変換したいと思います。私はどのようにこれを行うことができるか分からない。私は分割を試みたが、それは私が望んでいたものではない。助けてください!配列のjavascriptへのJsonの応答

マイAJAX、JSON応答(これは1つの文字列である):配列でそれを押した後

Array[Date:"[['2016-09-09',162], ['2016-12-04',145], ['2017-01-11',130]]"] 

マイ欲求結果:

var array = [['2016-09-09',162], ['2016-12-04',145], ['2017-01-11',130]]; 
+0

'アレイ使用して変換することができます[日付を:「...」]' ...これは何ですか? – deceze

+0

文字通りの文字列応答が得られると分かっていますか?すなわち: "配列[日付:" [['2016-09-09'、162]、['2016-12-04'、145]、['2017-01-11'、130]]]] " –

+0

あなたAJAXレスポンスはJSONではありません。 –

答えて

1

使用正規表現は、文字列からデータを抽出します。 FYI

var str = `Array[Date:"[['2016-09-09',162], ['2016-12-04',145], ['2017-01-11',130]]"]`; 
 

 
// regex for your string pattern 
 
var re = /\[\s?'(\d{4}-\d{1,2}-\d{1,2})'\s?,\s?(\d+)\s?\]/g; 
 
// array for result 
 
var res = [], 
 
    // variable for caching match 
 
    m; 
 

 
// iterate over the matches 
 
while (m = re.exec(str)) { 
 
    //push values into array 
 
    res.push([m[1], +m[2]]); // use + prefix to convert into number 
 
} 
 

 
console.log(res);

Regex explanation here


それは有効なJSON文字列を生成するために、サーバー側のコードを更新する方が良いでしょう(それはすべてのプログラミング言語で実装するのは簡単です、そのためにあらかじめ定義された関数またはライブラリがあります)。

+1

クール!出来た!感謝!! – lel

+0

@lel:喜んで助けてください:) –

+0

こんにちは@Pranav Cバラン['2016-09-09'、162]バックナンバーに小数点がある場合、['2016-09-09'、1.62 ]または['2016-09-09'、16.2]、私はそれに合うようにregaxを変更するのですか? – lel

-1

AJAX応答が文字列であれば、あなたはJSON.parse(strSesponse)

+0

いいえ、それは文字列ではない、リスト – lel

関連する問題