diff --git a/webapp-django/crashstats/api/views.py b/webapp-django/crashstats/api/views.py index b9c31242d0..a3e292aa6c 100644 --- a/webapp-django/crashstats/api/views.py +++ b/webapp-django/crashstats/api/views.py @@ -267,7 +267,12 @@ def model_wrapper(request, model_name): ) raise except ValueError as e: - if 'No JSON object could be decoded' in e: + if ( + # built in json module ValueError + 'No JSON object could be decoded' in e or + # ujson module ValueError + 'Expected object or value' in e + ): return http.HttpResponse( 'Not a valid JSON response', status=400 diff --git a/webapp-django/crashstats/crashstats/models.py b/webapp-django/crashstats/crashstats/models.py index dc0da4148c..24bb2cc4ff 100644 --- a/webapp-django/crashstats/crashstats/models.py +++ b/webapp-django/crashstats/crashstats/models.py @@ -13,6 +13,8 @@ import stat import time +import ujson + from django.conf import settings from django.core.cache import cache from django.utils.encoding import iri_to_uri @@ -264,7 +266,7 @@ def fetch( result = resp.content if expect_json: - result = json.loads(result) + result = ujson.loads(result) if cache_key: cache.set(cache_key, result, self.cache_seconds)