Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ TryGetNamedPropertyValue() [2/3]

bool System.Text.Json.JsonDocument.TryGetNamedPropertyValue ( int index,
ReadOnlySpan< char > propertyName,
out JsonElement value )
inlinepackage

Definition at line 1573 of file JsonDocument.cs.

1574 {
1576 DbRow dbRow = _parsedData.Get(index);
1577 CheckExpectedType(JsonTokenType.StartObject, dbRow.TokenType);
1578 if (dbRow.NumberOfRows == 1)
1579 {
1580 value = default(JsonElement);
1581 return false;
1582 }
1583 int maxByteCount = JsonReaderHelper.s_utf8Encoding.GetMaxByteCount(propertyName.Length);
1584 int startIndex = index + 12;
1585 int num = checked(dbRow.NumberOfRows * 12 + index);
1586 if (maxByteCount < 256)
1587 {
1588 Span<byte> span = stackalloc byte[256];
1589 span = span[..JsonReaderHelper.GetUtf8FromText(propertyName, span)];
1591 }
1592 int length = propertyName.Length;
1593 int num2;
1594 for (num2 = num - 12; num2 > index; num2 -= 12)
1595 {
1596 int num3 = num2;
1598 num2 = ((!dbRow.IsSimpleValue) ? (num2 - 12 * (dbRow.NumberOfRows + 1)) : (num2 - 12));
1600 {
1602 Span<byte> span2 = default(Span<byte>);
1603 try
1604 {
1605 int utf8FromText = JsonReaderHelper.GetUtf8FromText(propertyName, array);
1606 span2 = array.AsSpan(0, utf8FromText);
1608 }
1609 finally
1610 {
1611 span2.Clear();
1613 }
1614 }
1615 }
1616 value = default(JsonElement);
1617 return false;
1618 }
static ArrayPool< T > Shared
Definition ArrayPool.cs:7
bool TryGetNamedPropertyValue(int index, ReadOnlySpan< char > propertyName, out JsonElement value)
void CheckExpectedType(JsonTokenType expected, JsonTokenType actual)

References System.Text.Json.JsonDocument._parsedData, System.array, System.Text.Json.JsonDocument.CheckExpectedType(), System.Text.Json.JsonDocument.CheckNotDisposed(), System.Text.Json.Dictionary, System.Text.Json.JsonDocument.MetadataDb.Get(), System.Text.Json.JsonReaderHelper.GetUtf8FromText(), System.index, System.length, System.Text.Json.JsonReaderHelper.s_utf8Encoding, System.Buffers.ArrayPool< T >.Shared, System.Text.Json.JsonDocument.DbRow.SizeOrLength, System.startIndex, System.Text.Json.JsonDocument.TryGetNamedPropertyValue(), and System.value.

Referenced by System.Text.Json.JsonDocument.TryGetNamedPropertyValue(), System.Text.Json.JsonDocument.TryGetNamedPropertyValue(), System.Text.Json.JsonElement.TryGetProperty(), and System.Text.Json.JsonElement.TryGetProperty().