PerformanceNavigationTiming: toJSON() method
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2021.
ThetoJSON() method of thePerformanceNavigationTiming interface is aserializer; it returns a JSON representation of thePerformanceNavigationTiming object.
In this article
Syntax
js
toJSON()Parameters
None.
Return value
AJSON object that is the serialization of thePerformanceNavigationTiming object.
Examples
>Using the toJSON method
In this example, callingentry.toJSON() returns a JSON representation of thePerformanceNavigationTiming object.
js
const observer = new PerformanceObserver((list) => { list.getEntries().forEach((entry) => { console.log(entry.toJSON()); });});observer.observe({ entryTypes: ["navigation"] });This would log a JSON object like so:
json
{ "name": "https://en.wikipedia.org/wiki/Main_Page", "entryType": "navigation", "startTime": 0, "duration": 227.60000002384186, "initiatorType": "navigation", "nextHopProtocol": "h2", "renderBlockingStatus": "blocking", "workerStart": 0, "redirectStart": 4, "redirectEnd": 71.40000000596046, "fetchStart": 71.40000000596046, "domainLookupStart": 71.40000000596046, "domainLookupEnd": 71.40000000596046, "connectStart": 71.40000000596046, "connectEnd": 71.40000000596046, "secureConnectionStart": 71.40000000596046, "requestStart": 73.7000000178814, "responseStart": 102.90000000596046, "responseEnd": 105.2000000178814, "transferSize": 19464, "encodedBodySize": 19164, "decodedBodySize": 83352, "serverTiming": [ { "name": "cache", "duration": 0, "description": "hit-front" }, { "name": "host", "duration": 0, "description": "cp3062" } ], "unloadEventStart": 0, "unloadEventEnd": 0, "domInteractive": 178.10000002384186, "domContentLoadedEventStart": 178.2000000178814, "domContentLoadedEventEnd": 178.2000000178814, "domComplete": 227.60000002384186, "loadEventStart": 227.60000002384186, "loadEventEnd": 227.60000002384186, "type": "navigate", "redirectCount": 1, "activationStart": 0}To get a JSON string, you can useJSON.stringify(entry) directly; it will calltoJSON() automatically.
Specifications
| Specification |
|---|
| Navigation Timing Level 2> # dom-performancenavigationtiming-tojson> |