Source:
private static ResourceTiming fromJson(JsonInput input) { input.beginObject(); Double requestTime = null; Double proxyStart = null; Double proxyEnd = null; Double dnsStart = null; Double dnsEnd = null; Double connectStart = null; Double connectEnd = null; Double sslStart = null; Double sslEnd = null; Double workerStart = null; Double workerReady = null; Double sendStart = null; Double sendEnd = null; Double pushStart = null; Double pushEnd = null; Double receiveHeadersEnd = null; while (input.hasNext()) { switch (input.nextName()) { case "requestTime": requestTime = input.read(Double.class); break; case "proxyStart": proxyStart = input.read(Double.class); break; case "proxyEnd": proxyEnd = input.read(Double.class); break; case "dnsStart": dnsStart = input.read(Double.class); break; case "dnsEnd": dnsEnd = input.read(Double.class); break; case "connectStart": connectStart = input.read(Double.class); break; case "connectEnd": connectEnd = input.read(Double.class); break; case "sslStart": sslStart = input.read(Double.class); break; case "sslEnd": sslEnd = input.read(Double.class); break; case "workerStart": workerStart = input.read(Double.class); break; case "workerReady": workerReady = input.read(Double.class); break; case "sendStart": sendStart = input.read(Double.class); break; case "sendEnd": sendEnd = input.read(Double.class); break; case "pushStart": pushStart = input.read(Double.class); break; case "pushEnd": pushEnd = input.read(Double.class); break; case "receiveHeadersEnd": receiveHeadersEnd = input.read(Double.class); break; default: input.skipValue(); break; } } return new ResourceTiming(requestTime, proxyStart, proxyEnd, dnsStart, dnsEnd, connectStart, connectEnd, sslStart, sslEnd, workerStart, workerReady, sendStart, sendEnd, pushStart, pushEnd, receiveHeadersEnd); }

Target:
private static ResourceTiming fromJson(JsonInput input) { input.beginObject(); Double requestTime = null; Double proxyStart = null; Double proxyEnd = null; Double dnsStart = null; Double dnsEnd = null; Double connectStart = null; Double connectEnd = null; Double sslStart = null; Double sslEnd = null; Double workerStart = null; Double workerReady = null; Double sendStart = null; Double sendEnd = null; Double pushStart = null; Double pushEnd = null; Double receiveHeadersEnd = null; while (input.hasNext()) { switch (input.nextName()) { case "connectEnd": connectEnd = input.read(Double.class); break; case "connectStart": connectStart = input.read(Double.class); break; case "dnsEnd": dnsEnd = input.read(Double.class); break; case "dnsStart": dnsStart = input.read(Double.class); break; case "proxyEnd": proxyEnd = input.read(Double.class); break; case "proxyStart": proxyStart = input.read(Double.class); break; case "pushEnd": pushEnd = input.read(Double.class); break; case "pushStart": pushStart = input.read(Double.class); break; case "receiveHeadersEnd": receiveHeadersEnd = input.read(Double.class); break; case "requestTime": requestTime = input.read(Double.class); break; case "sendStart": sendStart = input.read(Double.class); break; case "sendEnd": sendEnd = input.read(Double.class); break; case "sslEnd": sslEnd = input.read(Double.class); break; case "sslStart": sslStart = input.read(Double.class); break; case "workerReady": workerReady = input.read(Double.class); break; case "workerStart": workerStart = input.read(Double.class); break; default: input.skipValue(); break; } } return new ResourceTiming(requestTime, proxyStart, proxyEnd, dnsStart, dnsEnd, connectStart, connectEnd, sslStart, sslEnd, workerStart, workerReady, sendStart, sendEnd, pushStart, pushEnd, receiveHeadersEnd); }