从String获取JavaScript-Object

时间:2018-06-17 20:55:41

标签: javascript string typescript object

拥有:

var text ='{"parameter":"value"}';

我可以使用JSON.parse(text);创建一个JavaScript对象。

问题: 我来自axios.default.post请求'{ parameter: "value" }'。 JSON.parse会为此抛出错误。

那么,我怎样才能从中创建一个对象?

*** ***** EDIT 响应来自axios请求。我现在通过transformResponse调试它,在那个阶段,数据仍然是{"参数":"值"}。因此,Axios通过以下方式创建我的问题 - 为什么 - 删除&#34 ;;必须弄明白,为什么。

感谢您的回答,我会及时通知您。

3 个答案:

答案 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所说,如果你不确定你的字符串来源,这不是一个安全的方法。

&#13;
&#13;
'{ parameter: "value"}'
&#13;
&#13;
&#13;