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⁩.

The toJSON() method of the PerformanceNavigationTiming interface is a serializer; it returns a JSON representation of the PerformanceNavigationTiming object.

Syntax

js
toJSON() 

Parameters

None.

Return value

A JSON object that is the serialization of the PerformanceNavigationTiming object.

Examples

Using the toJSON method

In this example, calling entry.toJSON() returns a JSON representation of the PerformanceNavigationTiming 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 use JSON.stringify(entry) directly; it will call toJSON() automatically.

Specifications

Specification
Navigation Timing Level 2
# dom-performancenavigationtiming-tojson

Browser compatibility

See also