Javascript将CSV字符串映射到JSON数组

时间:2016-06-15 01:02:38

标签: javascript json api csv middleware

这个令我感到困惑,我甚至不确定我是否正在搜索正确的关键字以寻找可能的解释。

我正在向远程服务器发送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对我来说是新手。如果我通过寻求帮助打破任何协议而不发布我的微弱尝试来解决这个问题,我会提前道歉...

2 个答案:

答案 0 :(得分:2)

  1. 您可以{com}逗号上的split响应,它会为您提供数组。

  2. 由于两个数组(键和val)的长度相同,因此您可以循环遍历任何一个并以此方式创建对象数组。见下文

  3. 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);

答案 1 :(得分: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