oData
$.each で with jQueryをラップしたくない
そのため、代わりに
$.each($(oData['ops:patent-family']['ops:family-member']),
あなたがしたい:
$.each(oData['ops:patent-family']['ops:family-member'],
また、返された json でレベルを下げる必要があります (最初の 'ops:world-patent-data' レベルがあります)。これは次のようになります。
if(oData['ops:world-patent-data'] &&
oData['ops:world-patent-data']['ops:patent-family'] &&
oData['ops:world-patent-data']['ops:patent-family']['ops:family-member']){
$.each(oData['ops:world-patent-data']['ops:patent-family']['ops:family-member'],
function(iIndex, mValue) {
// LOOP THROUGH EACH FAMILY MEMBER AND DO STUFF!
console.log(iIndex, mValue)
});
}
これを行うもう 1 つの完全に異なる方法は、jquery deferreds 構文を使用し、.pipe を使用してデータを変換することです。if
var sUrl = "http://ops.epo.org/2.6.2/rest-services/family/publication/docdb/EP.1000000.A1/.js?callback=?";
$.getJSON(sUrl)
.pipe(function(data){
try{
return data['ops:world-patent-data']['ops:patent-family']['ops:family-member'];
} catch(e){
return [];
}
})
.then(function(members){
$.each(members, function(iIndex, mValue){
console.log(iIndex, mValue)
})
})