最初由Sashkan在Oboe.js Github issues上提出:
我从一个遥远的API得到了stremedResponse。当我进行ajax调用时,得到以下响应:
{"company_id":"3e1f975601f59090decc8f2d5ced72010162e481","airplane_type_id":"c10143316664f220a5cb87950b3dbac8794e2b15","legs":
[{"lfi_from":"FR49348","lfi_to":"FR24863","nb_pax":"1","datetime_from":"2015-12-10 15:45:00","datetime_to":"2015-12-10 16:44:00","duration":"00:59","availability":true}]},{"company_id":"3e1f975601f59090decc8f2d5ced72010162e481","airplane_type_id":"opfr8976xwqs54321zdickv678654xckvjfdf025","legs":
[{"lfi_from":"FR49348","lfi_to":"FR24863","nb_pax":"1","datetime_from":"2015-12-10 15:45:00","datetime_to":"2015-12-10 16:45:00","duration":"01:00","availability":true}]},{"company_id":"3e1f975601f59090decc8f2d5ced72010162e48e","airplane_type_id":"2368c24e9980e4eb9ccd986f32df884e5bd58707","legs":
[{"lfi_from":"FR49348","lfi_to":"FR24863","nb_pax":"1","datetime_from":"2015-12-10 15:45:00","datetime_to":"2015-12-10 16:50:00","duration":"01:05","availability":true}]}
但是,当我使用双簧管时,仅显示第一个,然后立即显示以下双簧管错误:
thrown: Error: Bad value Ln: 1 Col: 65 Chr: , at Error (native) at emitError (http://openjetfrontclean/app_dev.php/bundles/main_oboe-browser_9.js:636:20) at handleData (http://openjetfrontclean/app_dev.php/bundles/main_oboe-browser_9.js:816:20) at applyEach (http://openjetfrontclean/app_dev.php/bundles/main_oboe-browser_9.js:497:20) at emit (http://openjetfrontclean/app_dev.php/bundles/main_oboe-browser_9.js:2042:10) at XMLHttpRequest.handleProgress (http://openjetfrontclean/app_dev.php/bundles/main_oboe-browser_9.js:1253:10)
message: "Bad value↵Ln: 1↵Col: 65↵Chr: ,"
stack: (...)
get stack: ()
set stack: ()
__proto__: DefineError.bh
知道为什么吗?
最佳答案
JuanCaicedo提供的答案
我认为响应是无效的json,您可以通过将其插入http://jsonlint.com/进行验证。看起来是三个逗号分隔的对象。我认为这是一个数组?如果是这样,只需在第一个对象的开头添加一个[
,在最后一个对象的末尾添加一个]
。
Oboe能够从顶级数组中挑选项目。呼叫.node('[*]', function(){...})
。