Files
lserp_cs_5.0/插件库/Zhaizj.Framework/Serialization/JsonParser/JsonParserBase.cs
T
2026-07-10 15:25:05 +08:00

54 lines
1.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
namespace Zhaizj.Framework.Serialization {
internal abstract class JsonParserBase {
protected CharSource charSrc;
protected abstract void parse();
public abstract Object getResult();
public JsonParserBase() {
}
public JsonParserBase( CharSource charSrc ) {
this.charSrc = charSrc;
parse();
}
protected JsonParserBase moveAndGetParser() {
charSrc.moveToText();
char c = charSrc.getCurrent();
if (c == '"' || c == '\'') {
return new StringJsonParser( this.charSrc, c );
}
if (c == '{') {
charSrc.back();
return new ObjectJsonParser( this.charSrc );
}
if (c == '[') {
charSrc.back();
return new ArrayJsonParser( this.charSrc );
}
return new ValueJsonParser( this.charSrc );
}
protected JsonParserException ex( String msg ) {
return new JsonParserException( msg + "(index:"+this.charSrc.getIndex().ToString()+")\n" + this.charSrc.strSrc );
}
}
}