代码模式读取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
的对象?
答案 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