init lserp cs 5.0

This commit is contained in:
cyf
2026-07-10 15:25:05 +08:00
commit 90f3fda86a
3799 changed files with 976868 additions and 0 deletions
@@ -0,0 +1,76 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Zhaizj.Framework.Serialization {
internal class ObjectJsonParser : JsonParserBase {
private Dictionary<String, object> map = new Dictionary<String, object>();
public override Object getResult() {
return this.map;
}
public ObjectJsonParser( CharSource charSrc )
: base( charSrc ) {
}
protected override void parse() {
charSrc.moveToText();
if (charSrc.getCurrent() != '{') throw ex( "json Object must start with { " );
charSrc.moveToText();
if (charSrc.getCurrent() == '}') return;
charSrc.back();
parseOne();
}
private void parseOne() {
charSrc.moveToText();
if (charSrc.getCurrent() == '}') return;
// 解析key
charSrc.back();
String key = moveAndGetParser().getResult().ToString();
// 解析冒号
charSrc.moveToText();
if (charSrc.getCurrent() != ':') throw ex( "json object's property pair must seperated with :" );
// 解析value
Object val = moveAndGetParser().getResult();
// 获取值
map.Add( key, val );
// 处理剩下的字符
charSrc.moveToText();
char c = charSrc.getCurrent();
if (c == '}') return;
if (c != ',') throw ex( "json object's property must seperated with ," );
charSrc.moveToText();
if (charSrc.getCurrent() == '}')
return;
else {
charSrc.back();
parseOne();
}
}
}
}