/// <inheritdoc /> public override bool TryGetObjectProperty( IJsonNavigatorNode objectNode, string propertyName, out ObjectProperty objectProperty) { _ = JsonBinaryNavigator.GetNodeOfType( JsonNodeType.Object, objectNode); Utf8Span utf8StringPropertyName = Utf8Span.TranscodeUtf16(propertyName); foreach (ObjectProperty objectPropertyNode in this.GetObjectProperties(objectNode)) { if (this.TryGetBufferedStringValue(objectPropertyNode.NameNode, out Utf8Memory bufferedUtf8StringValue)) { // First try and see if we can avoid materializing the UTF16 string. if (utf8StringPropertyName.Equals(bufferedUtf8StringValue.Span)) { objectProperty = objectPropertyNode; return(true); } } else { if (this.GetStringValue(objectPropertyNode.NameNode) == propertyName) { objectProperty = objectPropertyNode; return(true); } } } objectProperty = default; return(false); }