jQueryのデータ型 'jsonp'を使用してAPIからJSON文字列を取得します。戻り値のobjに ':'コロンが含まれている文字列が含まれているため、操作が失敗します。ここjQuery:コロンを含む文字列のためにjsonpが失敗する
検索フィドル:http://jsfiddle.net/ezmilhouse/vZjV4/1/
var url = 'http://api.spreadshirt.com/api/v1/shops/329852/articles?fullData=true&locale=us_US&offset=0&attributeSet=staticShop&mediaType=jsonp';
$.ajax({
cache: false,
callback: "callback",
dataType: 'jsonp',
pageCache: false,
url: url,
callbackParameter: "callback",
success: function(data, status, jqXHR) {
console.log(data);
}});
返すobjが(jsonlint.comでテスト)有効なJSONであるこの、次のようになります。
{"articles": [
{
"name": "Honoring Generations of Mothers - Youth TShirt",
"description": "t-shirt for women, Brand: ALO"
}
]}
しかし、jQueryの
unterminated string literal
をスローします
「ブランド」の後のコロンが好きではないため、エラーが発生しました
"description": "t-shirt for women, Brand: ALO" // colon causes error
jQueryのjsonpを使用するにはコロンをエスケープする必要がありますか? 回避策はありますか?
THX
理論では、jsonは説明値を文字列として扱うので、エスケープする必要はありませんが、役立つ場合は、エスケープしてください。より良いjsonエンコード/デコード-r – Val
http:// jsonを使用してください。 parser.online.fr/私にエラーはありません... –