JSOIN.parse()报错:キャッチされない構文エラー: JSON.parse の位置 1 に JSON の予期しないトークン o があります ...

プロジェクトで問題が発生しました。フロントエンドはバックグラウンドから返された json 文字列を json オブジェクトに変換する必要がありますが、バックグラウンドから返された文字列にはエスケープ文字が含まれています: \ "

まず問題を特定する

JSON.parse() パラメータは文字列型である必要があります  

渡されたパラメータはオブジェクト型であるため、JSON.parse() はデフォルトでオブジェクト型を文字列に変換し、結果は「[object object]」になります。  

2. 文字列であるにもかかわらずエスケープされてエラーが報告される場合は、エスケープ文字などのエスケープできない理由が考えられます。最後に、インターネット上にある方法は次のように処理できます。

var json = eval('(' + data + ')');

ただし、eslint 形式では、eval 関数は次の警告を報告します: eval は有害です

最適化:

jsonEval (fn) {
      var Fun = Function // 一个变量指向Function,防止有些前端编译工具报错
      return new Fun('return ' + fn)()
    },

let str = this.jsonEval(res.data.TargetText)

これで解決します。

おすすめ

転載: blog.csdn.net/weixin_50114203/article/details/130410387