2017-03-23 11 views
-1

私は解析して画面に表示するJSON応答を取得します。問題は時々、文字列値のいくつかを引用符で囲まないことがあるということです。例:reference":D578699A, "success":1, "error_code":0, "error_text":"Success" }一部の文字列に ""が含まれている可能性があります。このような状況にどう対処すればよいですか?どうもありがとう!JSONの解析(JavaScriptで引用符なし)

+1

サーバーはあなたに不正な形式のJSONを渡している場合、あなたはそれが正しく形成されたデータを渡すために更新する必要があります。それが本当の答えです。この悪いデータを与えるサーバーを修正する必要があります。しかし、これをコードで修正することは可能です。しかし、それは本当の問題へのバンダイです。文字列に 'JSON.parse'を呼び出してJSONオブジェクトにすることができない場合は、文字列を与えたサーバを修正する必要があります。 IMO。 – frosty

+0

^this。問題をダクトテープで叩いて固定しないでください。正しい方法で固定してください。 –

+0

それはあなたのjavscriptにないサーバーと何か関係がある また、サーバーは決してそのような種類のjson結果を生成しません。つまり、二重引用符のない文字列を意味します – Beginner

答えて

2

よく答えると、そのサービスでバグのあるコードが修正されます。

JSON.parseを使用できない場合は、古い学校に行ってevalやnew Functionを使用できます。これらのソリューションの

var x = '{foo:"bar", "cat" : "dog"}'; 
eval("var o =" + x); 
console.log(o); 

または

var x = '{foo:"bar", "cat" : "dog"}'; 
var o = new Function("return " + x)(); 
console.log(o) 

使用すると、XSS攻撃にあなたを開きます。..

別のオプションは、それを

1

いくつかの観察を修正しようとすると、正規表現を記述しています:

  • JSONは、引用符( ")のない文字列値を持つため、有効なJSONではありません。

enter image description here

この問題は、サーバー側から修正する必要があります。したがって、以下のように、有効なJSONが返されます。

enter image description here

関連する問題