使用键值将javascript对象拆分为字符串

时间:2018-05-31 14:25:15

标签: javascript

代码模式读取HTML元素上的dataset并接收以下输出。

var objectString = '{"name": "Name", "description": "desc", "extra": "extra"}'
  
console.log(typeof objectString)

您能否建议一种有效的方法将其转换为密钥:值对?

由于JSON.parse(objectString)后来导致

  

SyntaxError:位置1的JSON中的意外标记o

它假设它已经是一个对象,但在objectString.name中返回undefined

更新

我很抱歉,JSON.parse可以在浏览器中运行。但我没有提到代码项目有jest测试器验证它,所以它抛出和语法错误。这就是我寻找类似方法的原因。

是否可以拆分字符串单词,循环并返回一个key: pair的对象?

2 个答案:

答案 0 :(得分:1)

  

这就是为什么我在寻找类似的方法

这是一个将您的字符串转换为对象的代码。这只是一些字符串操作才能使格式正确。然后使用forEach循环将键/值对附加到对象中。

// removes white spaces and first and last characters around string
let shape = s => s.trim().substring(1, s.trim().length - 1);

// convert the string into an object
let convertToObj = function(str) {

  let obj = {};
  
  shape(str).split(',').forEach(e => {
    [key, value] = e.split(':');
    obj[shape(key)] = shape(value)
  });
  
  return obj

}

// preview
obj = convertToObj('{"name": "Name", "description": "desc", "extra": "extra"}')
console.log(obj)

答案 1 :(得分:0)

检查以下代码,将for file in $(ls); do mv $file $(echo $file | awk -F _ 'BEGIN {OFS="_"} {print $1, $(NF-1), $NF}'); done 作为字符串:



key : value




相关问题