I have had this same issue for a few days!
I found out that the problem starts at WooCommerse version 2.4.0. v2.3.13 is that last version when this JSON error doesnt occur.
im on WordPress 4.4.2 and WooCommerse 2.5.5
But I think I have a fix that did work in my case..
1. Problem is at \wp-content\plugins\woocommerce\assets\js\frontend\checkout.min.js
2. You need to sexify you .JS so you can actually read it. I used https://jsbeautifier.org/. Just copy and paste the text into here and click on “beutify javascript”
3. Open the new sexy .JS file into notepad+ or similar to see line numbers.
4. On line number 148 you will see this:
1 !== d[“blockUI.isBlocked”] && c.block({
Looks odd yeah?
Now put the “if(” in front and fix the backwards “(” after c.block.
The result is:
if( 1 !== d[“blockUI.isBlocked”] && c.block){
Now it looks like a proper conditional statement desnt it! ??
Looks like some condition cause thing to get missed up because of the statement in that line.
For all of you that are wondering.. If you simply left out the “if(” but had the “(” after the c.block statement the correct way”)” the error wouldnt pop up.
So either the programmer made the mistake of forgetting the “if(” and putting the “)” backwards *cough*, or the utility used to minify the code picked up the error and corrected it with a bracket in the other direction!
Anyway..
This should work on WooCommerse from 2.4.0+
I hope this is [SOLVED] now..