swiftR

fastjson解析过程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public static Object parse(String text, int features) {
if (text == null) {
return null;
}

DefaultJSONParser parser = new DefaultJSONParser(text, ParserConfig.getGlobalInstance(), features);//创建默认解析对象
Object value = parser.parse(); //解析获取object

parser.handleResovleTask(value);

parser.close();

return value;
}

public final static int LBRACE = 12; // ("{"), json开始节点符号

public Object parse(Object fieldName) {
final JSONLexer lexer = this.lexer;
switch (lexer.token()) { //获取json对应的token 这里开始是12
case SET:
lexer.nextToken();
HashSet<Object> set = new HashSet<Object>();
parseArray(set, fieldName);

case LBRACE:
JSONObject object = new JSONObject(lexer.isEnabled(Feature.OrderedField)); 创建一个新的jsonobject对象
return parseObject(object, fieldName);