拥有:
var text ='{"parameter":"value"}';
我可以使用JSON.parse(text);创建一个JavaScript对象。
问题:
我来自axios.default.post请求'{ parameter: "value" }'
。 JSON.parse会为此抛出错误。
那么,我怎样才能从中创建一个对象?
*** ***** EDIT 响应来自axios请求。我现在通过transformResponse调试它,在那个阶段,数据仍然是{"参数":"值"}。因此,Axios通过以下方式创建我的问题 - 为什么 - 删除&#34 ;;必须弄明白,为什么。
感谢您的回答,我会及时通知您。
答案 0 :(得分:0)
我认为你应该让api响应正确的json有效数据。我不建议通过前端处理这个无效的json字符串。
<强>更新强>
根据你的问题,你试试这个配置吗?
// `transformResponse` allows changes to the response data to be made before
// it is passed to then/catch
transformResponse: [function (data) {
// Do whatever you want to transform the data
return data;
}],
希望这个帮助
答案 1 :(得分:0)
问题在于Axios,当从服务器接收JSON时,Axios似乎将其格式化为不同的格式,即使它在执行“typeof”时保持字符串。
我的解决方案是将responseType =“text”添加到请求的配置中。 这样,我收到一个文本,我可以使用JSON.parse进行解析。
然而,这在某种程度上并不完美,因为Axios提供了JSON格式化,因此,如果有人对“我如何使用Axios格式化结果”有答案,我很乐意了解它。
答案 2 :(得分:-1)
implementation 'com.android.support:support-media-compat:27.1.1'
不是JSON,因为您可能已经弄明白,因为密钥并未包含在引号中。有一个技巧可以用来将javascript对象字符串转换回对象。
正如@ASDFGerte所说,如果你不确定你的字符串来源,这不是一个安全的方法。
'{ parameter: "value"}'
&#13;