0

JSON の URL を読み取ろうとしていますが、JSON の開始前に余分な文字列が表示されます

JSON スクリプトは次のようなものです。

throw 'allowIllegalResourceCall is false.';
{  
   "name":"mkyong",
   "age":30,
   "address":{  
      "streetAddress":"88 8nd Street",
      "city":"New York"
   },
   "phoneNumber":[  
      {  
         "type":"home",
         "number":"111 111-1111"
      },
      {  
         "type":"fax",
         "number":"222 222-2222"
      }
   ]
}

以下のJavaScriptを使用して、このJSONを読み取ろうとしています:

<script>
$(document).ready(function() {           
    $('.button').click(function(){
    var ur= "http://json_url";
    alert(ur);
    alert(JSON.stringify($.getJSON(ur)));
    });
});
</script>

Java スクリプト/jQuery または ajax を使用して、このタイプの Json を読み取る方法はありますか。

4

2 に答える 2

3

ジョン・スミスの答えにコメントを追加するのに十分なポイントがありませんが、おそらくPythonでのプログラミングに慣れているため、少しの間違いを除いて、彼は正しい軌道に乗っています:-)

正規表現は次のようにする必要があります。/^throw.*;\s*/代わりに"^throw.*;\s*"

二重引用符を使用する代わりに、正規表現の最初と最後に / を使用します。それはトリックを行います。

于 2014-08-26T19:10:36.367 に答える
0

いくつかのAPIドキュメントでこれを読んでください

JSON セキュリティ文字列

GET 要求は、JSON テキストの前の行にセキュリティ文字列を含めることで保護されます。文字列は通常、「throw 'allowIllegalResourceCall is false.';」のようになります。この文字列を取り除くには、正規表現を使用する必要があります。たとえば、Python では次のように使用できます。

json = re.sub(r"^throw.*;\s*","",json)

そのため、文字列を "" に置き換え、regExp をスラッシュで囲むだけです。

alert($.getJSON(ur).replace(/^throw.*;\s*/,"");

ソース: https://developers.jivesoftware.com/api/v3/cloud/rest/index.html

于 2014-08-26T16:54:09.757 に答える