openrtb-core/src/main/java/com/google/openrtb/json/OpenRtbJsonReader.java
public final BidRequest.Builder readBidRequest(JsonParser par) throws IOException {
    if (emptyToNull(par)) {
      return null;
    }

    BidRequest.Builder req = BidRequest.newBuilder();
    for (startObject(par); endObject(par); par.nextToken()) {
      String fieldName = getCurrentName(par);
      if (par.nextToken() != JsonToken.VALUE_NULL) {
        readBidRequestField(par, req, fieldName);
      }
    }
    return req;
  }
public final BidRequest.Builder readBidRequest(JsonParser par) throws IOException {
    if (emptyToNull(par)) {
      return null;
    }

    BidRequest.Builder req = BidRequest.newBuilder();
    for (startObject(par); endObject(par); par.nextToken()) {
      String fieldName = getCurrentName(par);
      if (par.nextToken() != JsonToken.VALUE_NULL) {
        readBidRequestField(par, req, fieldName);
      }
    }
    return req;
  }
Desserializes a {@link BidRequest} from JSON, with a provided {@link JsonParser}
which allows several choices of input and encoding.