Javascript 有没有办法从json中获取一个值作为react native中的变量

Javascript 有没有办法从json中获取一个值作为react native中的变量,javascript,react-native,react-native-sound,Javascript,React Native,React Native Sound,我正在尝试在react native中创建应用程序。我的信息存储在数据库中。我使用php通过查询获取数据库的信息 然后我使用fetch获取信息,我能够获取信息并将其显示为文本。我想把数据作为一个变量,这样我就可以将它与react native sound一起使用 这是我的本地代码 构造器{ 超级作物; 此.state={ 播放状态:'暂停',//播放,暂停 播放秒数:0, 持续时间:0, 文件持有人: } this.sliderEditing=false; } 组件安装{ 取回http://f

我正在尝试在react native中创建应用程序。我的信息存储在数据库中。我使用php通过查询获取数据库的信息

然后我使用fetch获取信息,我能够获取信息并将其显示为文本。我想把数据作为一个变量,这样我就可以将它与react native sound一起使用

这是我的本地代码

构造器{ 超级作物; 此.state={ 播放状态:'暂停',//播放,暂停 播放秒数:0, 持续时间:0, 文件持有人: } this.sliderEditing=false; } 组件安装{ 取回http://f10f7e2e.ngrok.io/Filter.php', { 方法:“POST”, 标题:{ “接受”:“应用程序/json”, “内容类型”:“应用程序/json”, }, 正文:JSON.stringify{ //拿到身份证。 id:this.props.navigation.state.params.FlatListClickItemHolder } }.thenresponse=>response.json .thenresponseJson=>{ 这是我的国家{ FileUrlHolder:responseJson[0]。FileUrl }; }.catcherror=>{ 控制台错误; }; } 组件将卸载{ 播放=异步=>{ 如果这是声音{ this.sound.playthis.playtomplete; this.setState{playState:'playing'}; }否则{ const filepath=this.state.FileUrlHolder; console.log“[Play]”,文件路径; //Alert.Alert'id'+文件路径; this.sound=新的声音文件路径,错误=>{ 如果错误{ console.log“加载声音失败”,错误; 警报。警报'通知','音频文件错误。错误代码:1'; this.setState{playState:'paused'}; }否则{ this.setState{playState:'playing',duration:this.sound.getDuration}; this.sound.playthis.playtomplete; } }; }
}当您执行response.json时,您会返回一个使用响应主体创建的对象。在您的情况下,该对象将是一个包含具有FileUrl属性的对象的数组。您不需要对其进行json.parse,因为它已经被解析为一个对象,这就是为什么会出现错误的原因。您的代码应该可以工作,具体的专业代码是什么问题?您确定后端返回的数据正确吗?

您可以使用json将json字符串转换为对象。解析您的json字符串如何工作?类似于:.thenresponseJson=>{let jsonObj=json.parseresponseJson;this.setState{FileUrlHolder:jsonObj[0].FileUrl};}这会导致一个错误,SyntaxError:JSON解析错误:意外标识符object看起来responseJson是一个对象。Do console.logtypeof responseJson[0]如果是字符串,则JSON.parse会将其解析。我不确定是否理解您的问题。是的,我已检查了后端并返回了正确的信息,我似乎只能使用返回的文本信息,而不是变量。我认为这可能是导致问题的行const filepath=this.state.FileUrlHolder、 当我尝试console.log文件路径时,控制台上没有打印任何内容