最初由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(){...})

10-02 15:33