2012-05-09 16 views
0

こんにちは、これを見ていただきありがとうございます。Javascript JSONでエスケープされていない文字でエラーが返される

私が抱えている問題は、JSONがどのようにフォーマットされているかを制御することができないように、サードパーティのサービスからのJSON戻りです。私は、これは予想と同じように時間の99%に動作します(重要な部分にストリップダウン)以下

function JSONgrabber(Zip,iplocation) 
     { 
      var requestBase ="http://www.someCompany.com/api/request"; 
      var requestData ="iplocate=true&output=json&callback=useJSON"; 

      var request=requestBase+"&&zip="+Zip+"&"+requestData; 
      if(iplocation ==false || iplocation=="false") 
      { 
       request=request.replace("iplocate=true","iplocate=false"); 

      } 
      if (document.getElementById("JSONDataMaster")) 
      { 
       var element = document.getElementById("JSONDataMaster"); 
       element.parentNode.removeChild(element); 
      } 
      try{ 
      var head = document.getElementsByTagName("head").item(0); 
      var script = document.createElement("script"); 
      script.setAttribute("type", "text/javascript"); 
      script.setAttribute("src", request); 
      script.setAttribute("id", "JSONDataMaster"); 
      head.appendChild(script); 
      } 
      catch(err){console.log("Problem loading JSON Data");} 
      } 
     function useJSON(JSONDATA){} 

を使用していますが、機会にリターンはジョーのダイナー

のようなものを持っていると「キャッチされていないが発生しますSyntaxError:予期せぬ識別子です。これは戻り時に発生するため、置き換えなどでコールバック関数に到達しないため修正できませんでした。

どのような洞察も大変ありがとうございます。私は外部のライブラリ(jqueryなど)を使用していないので、何か助けてください純粋なJS(多分PHP)になる必要があります

答えて

0

あなたが取得したい文字列に特殊な文字が含まれているかどうかをチェックする必要があります

これを理解するのを助けることができる良いページです:

art of the web

この問題は似ています。

stacko

あなたは、単一引用符のためのすべての文字列をチェックして、エスケープ単一引用符に置き換える場合:

mystring.replace("'","\\'"); 
+0

あなたは私にこのような場合にはこれを行う方法の一例を示すことができますか?私は文字列を取得すると\ n \ tなどのようなもののためにそれらをエスケープします私は持っている問題は、私は文字列を評価することはできませんので、エラーの間に戻ります。 –

関連する問題