summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--devtools/client/jsonview/json-viewer.js22
1 files changed, 12 insertions, 10 deletions
diff --git a/devtools/client/jsonview/json-viewer.js b/devtools/client/jsonview/json-viewer.js
index bf86ebbea..38cb6d7ec 100644
--- a/devtools/client/jsonview/json-viewer.js
+++ b/devtools/client/jsonview/json-viewer.js
@@ -13,24 +13,26 @@ define(function (require, exports, module) {
const json = document.getElementById("json");
- let jsonData;
-
- try {
- jsonData = JSON.parse(json.textContent);
- } catch (err) {
- jsonData = err + "";
- }
-
// Application state object.
let input = {
jsonText: json.textContent,
jsonPretty: null,
- json: jsonData,
headers: window.headers,
tabActive: 0,
prettified: false
};
+ // Remove BOM, if present.
+ if (input.jsonText.startsWith("\ufeff")) {
+ input.jsonText = input.jsonText.slice(1);
+ }
+
+ try {
+ input.json = JSON.parse(input.jsonText);
+ } catch (err) {
+ input.json = err;
+ }
+
json.remove();
/**
@@ -59,7 +61,7 @@ define(function (require, exports, module) {
theApp.setState({jsonText: input.jsonText});
} else {
if (!input.jsonPretty) {
- input.jsonPretty = JSON.stringify(jsonData, null, " ");
+ input.jsonPretty = JSON.stringify(input.json, null, " ");
}
theApp.setState({jsonText: input.jsonPretty});
}