2016-06-15 47 views
0

這一個讓我感到困惑,我甚至不確定我在尋找可能的解釋的正確關鍵字。Javascript地圖CSV字符串到JSON數組

我正在向遠程服務器發送RPC。我得到的迴應只是一個逗號分隔的字符串值(無鑰匙),像這樣:

val1,val2,val3,val4,val5,val6,val7,val8,val9 

當我收到這個迴應,我需要通過JS這些值映射到按鍵(硬編碼,我指定)並生成一個JSON數組是這樣的:

{ 
    "response": { 
    "mykey1" : "val1", 
    "mykey2" : "val2", 
    "mykey3" : "val3", 
    "mykey4" : "val4", 
    "mykey5" : "val5", 
    "mykey6" : "val6", 
    "mykey7" : "val7", 
    "mykey8" : "val8", 
    "mykey9" : "val9" 
    } 
} 

任何人可以輕推我朝着正確的方向...樣本代碼或接近我所期待的教程?這是一箇中間件腳本,當服務器收到響應時被調用。

這是我在這裏的第一篇文章,一直在尋找很長一段時間的學習和應用Obj-C和我正在學習Swift,但JS對我來說是新的。我提前道歉,如果我被要求幫助違反任何協議,而不需要在搞清楚了這一點張貼我微弱的嘗試......

+0

你知道你的鑰匙是什麼?如果你有15個鍵,只返回5個'val',該怎麼辦? – mariocatch

+0

你好mariocatch。是的,我只是更新了我的帖子。我收到的字符串將始終具有相同數量的值(在我的情況下爲11),並且將始終以相同的順序排列。如果沒有返回值,它將看起來像這樣val1,val2,,val4 ,,, val7 ...但總是會有x個逗號分隔符。 –

+0

只要使用'String.split(',')',那麼你可以做任何你想要的結果數組。你想用結果創建的對象應該是合理的。如果你只是想使用這些鍵,爲什麼即使打擾一個對象呢? – PHPglue

回答

1
  1. 你可以split對逗號的迴應,這會給你一個數組。

  2. 由於兩個數組(鍵和vals)的長度相同,因此您可以循環並以這種方式創建對象數組。見下面

var response = 'val1,val2,val3,val4,val5'; 
 
var keys = [ 
 
    'key1', 'key2', 'key3', 'key4', 'key5' 
 
]; 
 

 
var dict = []; 
 
var vals = response.split(','); 
 

 
vals.forEach(function(val, i) { 
 
    dict[keys[i]] = val; 
 
}); 
 

 
console.log(dict);

+0

好的偉大的matiocatch!讓我稍微研究一下,然後找回結果。謝謝! –

0

閱讀我的意見,然後檢查了這一點:

var result = 'val1,val2,val3,val4,val5,val6,val7,val8,val9'; 
// real question should be why result is not JSON already 
var resArray = result.split(','); 
console.log(resArray[0]); // first result 
console.log(resArray[1]); // second result 
+0

謝謝PHPGlue,我會給這個鏡頭。我無法改變終端響應,它是一個已經通過卡品牌認證的支付處理系統等等。任何改變都需要各種戲劇。謝謝! –