通过JSON.stringify解析映射

时间:2017-10-14 13:03:33

标签: javascript json

我有一些地图数据对象,我需要将其转换为JSON。 我正在使用JSON.stringify()方法,但转换后我得到下一个结果:

{"someval":1,"someval2":"blabla","my_map":["{\"email\":\"test@gmail.com\",\"fullName\":\"username\"}"],"moredata":""}

我需要为my_map获取明确的字符串,而无需额外的' \'字符。我怎么能删除它们?只是替换不起作用,因为其他值可以有这样的字符。

2 个答案:

答案 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);