src/JsonWriter.cs
(开头部分) 19KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
namespace Rapidity.Json
{
/// <summary>
///
/// </summary>
public class JsonWriter : IDisposable
{
private TextWriter _writer;
private JsonOption _option;
private string _indeteChars; //缩进字符
private char _quoteSymbol = JsonConstants.Quote; //引号字符
private int _depth;
private JsonTokenType _tokenType;
public JsonTokenType TokenType => _tokenType;
public int Depth => _depth;
private Stack<JsonTokenType> _tokens;
private JsonContainerType _containerType;
public JsonWriter(TextWriter writer) : this(writer, new JsonOption())
{
}
public JsonWriter(TextWriter writer, JsonOption option)
{
_writer = writer;
_option = option ?? throw new ArgumentNullException(nameof(option));
_tokens = new Stack<JsonTokenType>();
if (_option.Indented)
{
if (_option.IndenteLength <= 0) _indeteChars = JsonConstants.Tab.ToString();
else
{
for (int i = 0; i < _option.IndenteLength; i++)
_indeteChars = string.Concat(_indeteChars, JsonConstants.Space);
}
}
}
#region write for jsontoken
public void WriteToken(JsonToken token)
{
switch (token.ValueType)
{
case JsonValueType.Object: WriteObject((JsonObject)token); break;
case JsonValueType.Array: WriteArray((JsonArray)token); break;
case JsonValueType.String: WriteString((JsonString)token); break;
case JsonValueType.Number: WriteNumber((JsonNumber)token); break;
case JsonValueType.Boolean: WriteBoolean((JsonBoolean)token); break;
case JsonValueType.Null: WriteNull(); break;
default: break;
}
}
public void WriteObject(JsonObject token)
后面还有 508 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
