//后端给了一个中文的key value很头疼,请问如何转换呢
"{"种类":"黑丝","价格":"100"}" => "黑丝,100"
如果能保证字段有序:
Object.values(JSON.parse('{"种类":"黑丝","价格":"100"}')).join(',')
否则转换对象后再额外处理。
当然,也可以通过匹配,如:
'{"种类":"黑丝","价格":"100"}'.replace(/"|\{|\}/g, '').split(',').map(item => item.split(':')[1]).join(',')
如果固定是这种格式的话
const str = '{"种类":"物品名","价格":"100"}';
const obj = JSON.parse(str);
console.log(`${obj.种类},${obj.价格}`); // 物品名,100
// => 黑丝,100 | 南瓜,60 | 香蕉,99.99
demo('{"种类":"黑丝","价格":"100", "种类":"南瓜","价格":"60", "种类":"香蕉","价格":"99.99"}')
function demo (str) {
var res = '', dot;
str.replace(/"种类":.*?"(.*?)".*?"价格":.*?"(.*?)"/g, function (_, name, price) {
dot = res ? ' | ' : ''
res += dot + name + ',' + price
})
return res;
}
数据后端给的格式和需求的格式之间必须存在转换规则,否则没有办法很好的转换。
从前面看,规则是可以明确的。
你还想给出更多数据,或者和后端协调如何转换最好,在这里问,意义不是太大啦。
let str = '{"种类":"黑丝","价格":"100"}'
let obj = JSON.parse(str)
let arr = []
for(let i in obj) {
arr.push(obj[i])
}
console.log(arr.join(','))
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
也可以通过正则: