我有一些地图数据对象,我需要将其转换为JSON。 我正在使用JSON.stringify()方法,但转换后我得到下一个结果:
{"someval":1,"someval2":"blabla","my_map":["{\"email\":\"test@gmail.com\",\"fullName\":\"username\"}"],"moredata":""}
我需要为my_map
获取明确的字符串,而无需额外的' \'字符。我怎么能删除它们?只是替换不起作用,因为其他值可以有这样的字符。
答案 0 :(得分:2)
我假设my_map
已经 JSON 。确切地说,我需要查看原始地图对象,但下面的示例将提供足够的洞察力来解决您的问题。
//correct example of a JavaScript object
var map = {"someval":1,"someval2":"blabla","my_map":[{"email":"test@gmail.com","fullName":"username"}],"moredata":""};
//also correct but the array content in my_map is a string and not treated as an object.
var map2 = {"someval":1,"someval2":"blabla","my_map":["{\"email\":\"test@gmail.com\",\"fullName\":\"username\"}"],"moredata":""};
console.log(JSON.stringify(map)); //correctly parsed
console.log(JSON.stringify(map2)); //incorrectly parsed
//solution for two:
//convert the string (JSON) to array and stringify result
map2["my_map"] = JSON.parse(map2["my_map"]);
console.log(JSON.stringify(map2));

答案 1 :(得分:0)
您可以使用JSON.parse()
在这种情况下,my_map
包含一个数组,其中包含需要进行JSON解析的字符串。因此,要获得字符串,您可以my_map[0]
。见例:
var x = {"someval":1,"someval2":"blabla","my_map":["{\"email\":\"test@gmail.com\",\"fullName\":\"username\"}"],"moredata":""};
var xx = JSON.parse(x.my_map[0]);
console.log('1: ' + xx.email);
console.log('2: ' + xx.fullName);