こんにちは、この記事をご覧いただきありがとうございます。
私が抱えている問題は、サードパーティのサービスからの JSON リターンにあるため、JSON のフォーマット方法を制御できません。私は以下を使用しています(重要な部分に取り除かれています)
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){}
これは 99% の場合は期待どおりに機能しますが、場合によっては次のような結果が返されます。
Joe's Diner と ' は Uncaught SyntaxError: Unexpected identifier を引き起こします。これはリターン中に発生するため、コールバック関数に到達しないため、置換などを介して修正することはできませんでした。
どんな洞察も大歓迎です。私は外部ライブラリ (jquery など) を使用していないので、純粋な JS (おそらく php) である必要があるヘルプをお願いします