React Native中如何去除JSON.stringify返回结果的引号?
解决React Native中显示城市名带引号的问题
嘿,这个小问题我之前也踩过坑!你看到的引号其实是因为你用JSON.stringify()把原本就是字符串类型的城市名转换成了JSON格式的字符串,所以才会带着双引号显示出来。下面给你几种靠谱的解决办法:
方法一:避免不必要的JSON.stringify()
如果你的原始位置数据(比如从定位API拿到的location.city)本身就是字符串,那完全不需要用JSON.stringify()处理它。直接把原始值赋值给state就好:
// 错误的写法(导致带引号) const fetchedCity = JSON.stringify(location.city); this.setState({ city: fetchedCity }); // 正确的写法 this.setState({ city: location.city });
方法二:用JSON.parse()还原已转义的字符串
如果你已经不小心把城市名转成带引号的JSON字符串了,那可以用JSON.parse()把它转回普通字符串:
// 在渲染时直接解析 <Text>City: {JSON.parse(this.state.city)}</Text> // 或者在设置state的时候就解析好 const parsedCity = JSON.parse(fetchedCityWithQuotes); this.setState({ city: parsedCity });
方法三:字符串替换(不推荐)
虽然可以用正则替换掉引号,但这种方法有风险——如果城市名本身包含双引号(虽然非常少见),会误删内容。所以只作为兜底方案:
<Text>City: {this.state.city.replace(/"/g, '')}</Text>
总的来说,优先用前两种方法,尤其是方法一,从根源上避免问题~
内容的提问来源于stack exchange,提问作者Markus Hayner
相关产品推荐
相关产品推荐

